检查行数然后插入值
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
}
我有一个表单,其中有一个列表框 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
}