检查行数然后插入值

Check row count and then insert value

我有一个表单,其中有一个列表框 select 不同日期的多个值。但要求是只能为 2 个用户预订一个日期,一旦 2 个用户预订了日期,那么我只需要将其从列表框中删除即可。

我创建了 3 个 table。第一个 table (table_dates) 只是在不同的行中显示日期,第二个 table (table_users) 存储用户信息,第三个 table (table_map) 正在将用户映射到日期。

如何编写逻辑来检查 selected 日期是否已被 2 个用户注册?

请检查下面我的 C# 代码

using (SqlCommand cmd = new SqlCommand())
{
    cmd.Connection = conn;
    cmd.CommandType = CommandType.Text;
    cmd.CommandText = "INSERT INTO table_users(Name,Email) OUTPUT INSERTED.userId Values (@name,@email)";
    cmd.Parameters.AddWithValue("@name", name);
    cmd.Parameters.AddWithValue("@email", email);
    int lastId = (int)cmd.ExecuteScalar();
    if (lastVolId > 0)
        {
            SqlCommand cmd2 = new SqlCommand();
            int counter = 0;
            string query = "";
            foreach (ListItem li in listBox.Items)
            {
                if (li.Selected)
                    {
                        // I need to write some thing here to check if selected date is registered 2 times
                        query = "INSERT INTO table_map(userId,dateId) VALUES('" + lastId + "','" + li.Value + "')";
                        cmd2 = new SqlCommand(query, conn);
                        cmd2.ExecuteNonQuery();
                        counter++;
                    }
            }

        }
        else
        {
            //Error notification
        }
    }

您 table_Date 是否有用于唯一日期 ID 的列?您要执行的操作是强制性的。
您需要做的是执行 SELECT 查询以检查它是否存在两次。

String selectStatent="SELECT * FROM table_Map WHERE dateID = @dateID";    
SqlCommand selectCommand = new SqlCommand( selectStatement, connectionString);     
int rowCount = selectCommand.ExecuteScalaer();    
if(  rowCount <= 2)   
{    
  //Proceed   
}