如何更新中间没有公共字段且具有两个条件的单个表
本文关键字:单个表 两个 条件 更新 何更新 中间 字段 | 更新日期: 2023-09-27 18:34:43
我正在用c#和MYSQL在 asp.net 中制作Web服务。
我想根据两个条件更新一个表。但是它们之间没有任何共同的字段。
可能吗?
**EDITED** -
我使用的代码为 -
using (MySqlConnection con1 = new MySqlConnection(conString))
{
string update = "UPDATE tbl_UserInfo U SET Chips= @param1 where UserName = @param2 AND QuestionID = @param3";
using (MySqlCommand cmd1 = new MySqlCommand(update, con1))
{
cmd1.Parameters.AddWithValue("@param1", getChips(answerby));
cmd1.Parameters.AddWithValue("@param2", answerby);
cmd1.Parameters.AddWithValue("@param3", queid);
con1.Open();
success = cmd1.ExecuteNonQuery();
con1.Close();
if (success > 0)
{
return success;
}
else
return 0;
}
}
但它给出了一个错误
Unknown column QuestionID in where clause
可能有什么问题?
等待解决方案...
您必须使用 SqlCommand 类并提供参数,并将输入传递给其中一个:
using(SqlConnection conn = new SqlConnection("connString"))
{
string incrementChips = "UPDATE tbl_UserInfo U SET Chips= @param1 where UserName = @param2 AND QuestionID = @param3";
// no need to use U.Chips or U.UserName, since you do not update in 2 or more table (where can be same fields)
using(SqlCommand cmd = new SqlCommand(incrementChips, conn))
{
//input parameter:
cmd.Parameters.Add("@param1", SqlDbType.VarChar, 50).Value = "your input string";
//and condition parameters:
cmd.Parameters.Add("@param2", SqlDbType.VarChar, 50).Value = "answerswerby";
cmd.Parameters.Add("@param3", SqlDbType.VarChar, 50).Value = "queid";
try
{
conn.Open();
cmd.ExecuteNonQuery();
}
catch(Exception ex)
{
//show exception to user (if it happens)
}
}
}