如何更新中间没有公共字段且具有两个条件的单个表

本文关键字:单个表 两个 条件 更新 何更新 中间 字段 | 更新日期: 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)
           }
       }
   }