1

我在 sql 中有一个包含许多字段的表。

我只想更新一个名为“ready”的字段,其 id 取自组合框。我使用了以下代码:

string query = "Update order SET ready='true' Where id=" + int.Parse(idComboBox.SelectedItem.ToString()) + ""; 

它给出错误说:

列名空

我应该怎么做才能保持其他记录的值相同并且只更改字段的值ready

4

3 回答 3

3

ORDER是保留字。改为使用[ORDER]

于 2013-03-31T12:24:06.647 回答
2

ORDERreserved wordSQL 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()));
于 2013-03-31T12:26:02.810 回答
1

用这个:

string query = "Update [order] SET ready='true' Where id=" + int.Parse(idComboBox.SelectedItem.ToString()) + ""; 
于 2013-03-31T12:24:30.243 回答