SQL更新查询引发语法错误[关闭]

Posted

技术标签:

【中文标题】SQL更新查询引发语法错误[关闭]【英文标题】:SQL update query throwing a syntax error [closed] 【发布时间】:2015-05-03 17:49:41 【问题描述】:

问题

我正在尝试以表单应用程序的形式创建数据库管理系统。我正在使用 Microsoft Access 数据库。我有一个引发错误的特定 SQL 更新查询,我无法确定错误的原因是什么,并想寻求有关如何使其工作的帮助。我很困惑,因为我多次使用更新查询都没有问题。我已经尝试查看这是否是由于使用任何 oledb 保留字的查询造成的,但我找不到任何正在使用的字眼。我已经根据我在查询中输入的数据的数据类型检查了所有引号是否正确使用。我还检查了表字段名称是否正确。

线...

command2.ExecuteNonQuery();

...是引发错误的地方。

代码

connection.Open();
OleDbCommand command2 = new OleDbCommand();
command2.Connection = connection;
query = "update Clients set FirstName='" + txt_FirstName.Text + "', Surname='" + txt_Surname.Text + "', AddressFirstLine='" + txt_AddressFirstLine.Text + "', AddressSecondLine='" + txt_AddressSecondLine.Text + "', AddressTown='" + txt_AddressTown.Text + "', AddressPostcode='" + txt_AddressPostcode.Text + "', Email='" + txt_Email.Text + "', Telephone='" + txt_TelephoneNumber.Text + "', Username='" + txt_Username.Text + "', UKARAID='" + txt_UKARAID.Text + "', where ClientID=" + txt_ClientID.Text;
MessageBox.Show(query);
command2.CommandText = query;
command2.ExecuteNonQuery();
connection.Close();

错误对话框

提前感谢您的帮助!如果还有什么我可以提供的可能有助于回答我的问题,请告诉我。

PS。我知道参数化查询并将实施它们,所以不用担心。 :)

【问题讨论】:

WHERE 前的逗号。 嗯,这应该会给你一些关于为什么要使用参数化查询的线索。不仅有助于防止 SQL 注入,还可以更轻松地发现 SQL 语句字符串中的错误。 谢谢@Amadan 的回答。这正是问题所在!很难相信我自己找不到这个。 不用担心。简单的错字,每个人都会遇到。 【参考方案1】:

where前面有个逗号,需要去掉("', where ClientID=")

query = "update Clients set FirstName='" + txt_FirstName.Text + "', Surname='" + txt_Surname.Text + "', AddressFirstLine='" + txt_AddressFirstLine.Text + "', AddressSecondLine='" + txt_AddressSecondLine.Text + "', AddressTown='" + txt_AddressTown.Text + "', AddressPostcode='" + txt_AddressPostcode.Text + "', Email='" + txt_Email.Text + "', Telephone='" + txt_TelephoneNumber.Text + "', Username='" + txt_Username.Text + "', UKARAID='" + txt_UKARAID.Text + "' where ClientID=" + txt_ClientID.Text;

【讨论】:

是的,谢谢,Amadan 得到了答案。

以上是关于SQL更新查询引发语法错误[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

我的更新 sql 查询一直说语法错误,但我不知道它是啥

SQL 语法错误:SET 语法(Lambda 函数)

SQL查询语法错误,使用另一个表的数据更新表[重复]

将单元格值提取到 SQL 查询中时 VBA 引发错误

访问中的 SQL 更新语句的语法错误

与某些表联接时更新查询的语法错误