我遇到了这个问题。我想更新我的数据库中的记录,但是,它一直显示此消息
您的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();
答案 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
:`