在数据库中更新会抛出SqlException

时间:2012-05-25 15:33:43

标签: c# sql-server

这是我的SQL语句:

UPDATE InboxItem 
SET OrderId = @0, Item = @1, Quantity = @2, Price = @3, 
    Memo = "", InboxId = @4, VATId = @5 
WHERE Id = @6

这会抛出SqlException,说

  

对象或列名称缺失或为空。对于SELECT INTO   声明,验证每列是否有名称。对于其他陈述,请查看   对于空别名。不允许使用定义为\“\”或[]的别名。   将别名更改为有效名称。

我想我知道问题所在。如果我给Memo值,那一切都没问题。但是,我有时候想把备忘录变成空字符串。怎么做?

2 个答案:

答案 0 :(得分:5)

使用''代替""。还要验证您的输入是否正确转义(可能其中一个字符串中有一个未转义的逗号)。

答案 1 :(得分:1)

var sb = new StringBuilder();            
sb.Append("UPDATE InboxItem ");
sb.Append("SET OrderId = @0, Item = @1, Quantity = @2, Price = @3, ");
sb.Append("Memo = @7, InboxId = @4, VATId = @5 ");
sb.Append("WHERE Id = @6");
var cm = new SqlCommand(sb.ToString());
cm.CommandType = System.Data.CommandType.Text;
cm.Parameters.AddWithValue("@1", Convert.ToInt16("OrderValue"));
//and so on