0

我正在用 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

可能是什么问题?

等待解决...

4

1 回答 1

2

您必须使用 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 = "answerby";
           cmd.Parameters.Add("@param3", SqlDbType.VarChar, 50).Value = "queid";
           try
           {
               conn.Open();
               cmd.ExecuteNonQuery();
           }
           catch(Exception ex)
           {
               //show exception to user (if it happens)
           }
       }
   }
于 2012-05-21T10:37:30.617 回答