错误:检查与MySQL服务器版本对应的手册,以便在附近使用正确的语法

时间:2014-03-25 03:43:26

标签: c# mysql

我遇到了这个问题。我想更新我的数据库中的记录,但是,它一直显示此消息

  

您的SQL语法有错误;检查手册   对应于您的MySQL服务器版本,以便使用正确的语法   靠近'values ='85'WHERES stud_no ='2014-0317-TSF-1''在第1行

string myConnection = "datasource=localhost;port=3306;username=root;password=";
MySqlConnection myConn = new MySqlConnection(myConnection);
string Query = "UPDATE stud_grades.firstyear_firstgrading SET values='" + valuesTextBox.Text + "' WHERE stud_no='" + stud_noTextBox.Text + "';";
MySqlCommand SelectCommand = new MySqlCommand(Query, myConn);
myConn.Open();
SelectCommand.ExecuteNonQuery();

2 个答案:

答案 0 :(得分:4)

使用values的反引号,因为它是关键字

http://dev.mysql.com/doc/refman/5.0/en/reserved-words.html

始终使用参数化查询来避免SQL注入

How does SQLParameter prevent SQL Injection

string Query = "UPDATE stud_grades.firstyear_firstgrading SET `values`=@values where 
                                stud_no=@stud_no";
MySqlCommand SelectCommand = new MySqlCommand(Query, myConn);
SelectCommand.Parameters.AddWithValue("@values ", valuesTextBox.Text);
SelectCommand.Parameters.AddWithValue("@stud_no", stud_noTextBox.Text);
myConn.Open();
SelectCommand.ExecuteNonQuery();

答案 1 :(得分:2)

VALUES是一个保留的MySQL词:http://dev.mysql.com/doc/refman/5.0/en/reserved-words.html

重命名此字段或在后面标记中包含values:`