从c#中仅更新sql中的一个单元格

时间:2013-03-31 12:22:26

标签: c# sql sql-update

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

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

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

它提出错误说:

  

列名称为空

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

3 个答案:

答案 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()) + "";