SQL 更新查询抛出语法错误
SQL update query throwing a syntax error
问题
我正在尝试以表单应用程序的形式创建一个数据库管理系统。我正在使用 Microsoft Access 数据库。我有一个特定的 SQL 更新查询,它抛出一个错误,我无法找出错误的原因,想寻求帮助以使其工作。我很困惑,因为我多次使用更新查询都没有问题。我已经尝试查看这是否是由于使用任何 oledb 保留字的查询造成的,但我找不到任何被使用的字词。我已经根据我在查询中输入的数据的数据类型检查了所有引号是否正确使用。我还检查了 table 字段名称是否正确。
线...
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前面有一个逗号,你需要去掉那个("', 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;
问题
我正在尝试以表单应用程序的形式创建一个数据库管理系统。我正在使用 Microsoft Access 数据库。我有一个特定的 SQL 更新查询,它抛出一个错误,我无法找出错误的原因,想寻求帮助以使其工作。我很困惑,因为我多次使用更新查询都没有问题。我已经尝试查看这是否是由于使用任何 oledb 保留字的查询造成的,但我找不到任何被使用的字词。我已经根据我在查询中输入的数据的数据类型检查了所有引号是否正确使用。我还检查了 table 字段名称是否正确。
线...
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前面有一个逗号,你需要去掉那个("', 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;