这是我的SQL语句:
UPDATE InboxItem
SET OrderId = @0, Item = @1, Quantity = @2, Price = @3,
Memo = "", InboxId = @4, VATId = @5
WHERE Id = @6
这会抛出SqlException
,说
对象或列名称缺失或为空。对于SELECT INTO 声明,验证每列是否有名称。对于其他陈述,请查看 对于空别名。不允许使用定义为\“\”或[]的别名。 将别名更改为有效名称。
我想我知道问题所在。如果我给Memo值,那一切都没问题。但是,我有时候想把备忘录变成空字符串。怎么做?
答案 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