我在 sql 中有一个包含许多字段的表。
我只想更新一个名为“ready”的字段,其 id 取自组合框。我使用了以下代码:
string query = "Update order SET ready='true' Where id=" + int.Parse(idComboBox.SelectedItem.ToString()) + "";
它给出错误说:
列名空
我应该怎么做才能保持其他记录的值相同并且只更改字段的值ready
?
我在 sql 中有一个包含许多字段的表。
我只想更新一个名为“ready”的字段,其 id 取自组合框。我使用了以下代码:
string query = "Update order SET ready='true' Where id=" + int.Parse(idComboBox.SelectedItem.ToString()) + "";
它给出错误说:
列名空
我应该怎么做才能保持其他记录的值相同并且只更改字段的值ready
?
ORDER
是保留字。改为使用[ORDER]
。
ORDER
是reserved word
SQL Server 上的一个。您应该将它与方括号一起使用[]
保留关键字是 SQL Server 用来解析和理解 Transact-SQL 语句和批处理的 Transact-SQL 语言语法的一部分。
string query = "Update [order] SET ready='true' Where id=" + int.Parse(idComboBox.SelectedItem.ToString()) + "";
但更重要的是,您的查询对SQL 注入攻击是开放的。您应该始终使用参数化查询。
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()));
用这个:
string query = "Update [order] SET ready='true' Where id=" + int.Parse(idComboBox.SelectedItem.ToString()) + "";