我在sql中有一个包含许多字段的表。
我想只更新一个名为“ready”的字段,其id来自组合框。我使用了以下代码:
string query = "Update order SET ready='true' Where id=" + int.Parse(idComboBox.SelectedItem.ToString()) + "";
它提出错误说:
列名称为空
我应该怎么做才能保持其他记录的值相同,只更改字段ready
的值?
答案 0 :(得分:3)
ORDER
是保留字。请改用[ORDER]
。
答案 1 :(得分:2)
ORDER
是SQL Server上的 reserved word
。您应该使用方括号[]
保留关键字是Transact-SQL语言语法的一部分 SQL Server用于解析和理解Transact-SQL 陈述和批次。
string query = "Update [order] SET ready='true' Where id=" + int.Parse(idComboBox.SelectedItem.ToString()) + "";
但更重要的是,您的查询是针对SQL Injection攻击开放的。您应该始终使用 parameterized queries 。
string query = "Update [order] SET ready='true' Where id = @id";
SqlCommand myCommand = new SqlCommand(query, cnn);
myCommand.Parameters.AddWithValue("@id", int.Parse(idComboBox.SelectedItem.ToString()));
答案 2 :(得分:1)
使用此:
string query = "Update [order] SET ready='true' Where id=" + int.Parse(idComboBox.SelectedItem.ToString()) + "";