C# 数据库中的更新引发SqlException

C# 数据库中的更新引发SqlException,c#,sql-server,C#,Sql Server,以下是我的SQL语句: UPDATE InboxItem SET OrderId = @0, Item = @1, Quantity = @2, Price = @3, Memo = "", InboxId = @4, VATId = @5 WHERE Id = @6 这会抛出SqlException,表示 对象或列名丢失或为空。选择进入 语句,验证每列是否有名称。对于其他语句,请参见 用于空别名。不允许使用定义为\“\”或[]的别名。 将别名更改为有效名称 我想我知道问题是什么

以下是我的SQL语句:

UPDATE InboxItem 
SET OrderId = @0, Item = @1, Quantity = @2, Price = @3, 
    Memo = "", InboxId = @4, VATId = @5 
WHERE Id = @6
这会抛出
SqlException
,表示

对象或列名丢失或为空。选择进入 语句,验证每列是否有名称。对于其他语句,请参见 用于空别名。不允许使用定义为\“\”或[]的别名。 将别名更改为有效名称


我想我知道问题是什么。如果我重视备忘录,一切都好。然而,我有时希望备忘录是空字符串。如何做到这一点?

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

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

将查询更改为this
Memo=@7
,并在sql Parameters send string.empty中更改为@7的查询将查询更改为this
Memo=@7
,在sql Parameters send string.empty中更改为@7有时这只是一些小事情而已。)有时是一些小事
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