1

这是我的 SQL 语句:

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

这抛出SqlException,说

缺少对象或列名称或为空。对于 SELECT INTO 语句,验证每一列都有一个名称。对于其他语句,请查找空别名。不允许使用定义为 \"\" 或 [] 的别名。将别名更改为有效名称。

我想我知道问题是什么。如果我赋予备忘录价值,一切都很好。但是,我有时希望备忘录是空字符串。这该怎么做?

4

2 回答 2

5

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

于 2012-05-25T15:36:24.403 回答
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
于 2012-05-25T16:03:11.893 回答