1

我想使用 C# 更新 MySQL 中特定行中的 4 列。我想更新

如果特定字段已经在文本框中输入到数据库中的值。我正在使用

以下查询。

 string query = " update orderform set enrolmentexpected = " +
    textBox2.Text + " stockonhand=" + textBox3.Text + " numberrequired = "
    + textBox4.Text +  " where name = " + textBox1.Text + ";";

我收到一个异常,即 mysql 语法有一些错误,但我无法

找到这样的。我的查询是正确的还是有一些语法错误,有什么方法可以

更新多列

4

4 回答 4

2

你在那条线上有很多问题。

使用这样的东西

using(MySqlConnection cn = GetConnection())
{
    cn.Open();
    string queryText = "update orderform set enrolmentexpected = ?en, stockonhand=?st, numberrequired=?num where name = ?name;";     
    MySqlCommand cmd = new MySqlCommand(queryText, cn);
    cmd.Parameters.AddWithValue("?en", textBox2.Text);
    cmd.Parameters.AddWithValue("?st", textBox3.Text);
    cmd.Parameters.AddWithValue("?num", textBox4.Text); // ?? require conversion to Int ???
    cmd.Parameters.AddWithValue("?name", textBox1.Text);
    cmd.ExecuteNonQuery();
}
于 2012-05-16T08:44:14.443 回答
1
string query = " update orderform set enrolmentexpected = " +
textBox2.Text + ", stockonhand=" + textBox3.Text + ", numberrequired = "
+ textBox4.Text +  " where name = '" + textBox1.Text + "';"

猜测 name 是一个字符串和其他两个 int

于 2012-05-16T08:43:09.553 回答
0

您似乎忘记了表达式后的逗号“,”:

string query = " update orderform set enrolmentexpected = " + textBox2.Text + ", stockonhand=" + textBox3.Text + ", numberrequired = " + textBox4.Text + " where name = " + textBox1.Text + ";";

和引号:

string query = " update orderform set enrolmentexpected = '" + textBox2.Text + "', stockonhand= '" + textBox3.Text + "' , numberrequired = '" + textBox4.Text + "' where name = " + textBox1.Text + ";";

于 2012-05-16T08:39:27.440 回答
0

看来您没有使用单引号和逗号。
用这个

string query = " update orderform set enrolmentexpected = '" +
textBox2.Text + "', stockonhand='" + textBox3.Text + "', numberrequired = '"
+ textBox4.Text +  "' where name = '" + textBox1.Text + "';";

这在所有数据类型都是 char 或 varchar 类型的情况下有效。

于 2012-05-16T08:41:55.883 回答