SQL更新查询抛出语法错误

时间:2015-05-03 17:49:41

标签: c# sql ms-access oledb

问题

我正在尝试以表单应用程序的形式创建数据库管理系统。我正在使用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();

错误对话

Error Dialog

提前感谢您的帮助!如果我能提供的任何其他内容可能有助于回答我的问题,请告诉我。

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

1 个答案:

答案 0 :(得分:2)

在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;