我在代码中遇到以下错误:
“ L”运算符后缺少操作数。
我调试了代码,发现它发生在下面的行中:
DataRow[] documents = this.DataSet.Results_Documents.Select(String.Format("DocumentControlNumber = '{0}'", dcn), null, DataViewRowState.CurrentRows);
当dcn的完整字符串中包含
'
时,就会发生这种情况。确切原因是什么?
例如:dcn:-Sheldon的Nat'l Bk
最佳答案
当dcn的完整字符串中包含'
时,就会发生这种情况。
对;使用串联的常见问题;让我们将示例dcn
用作您问题中的Nat'l Bk of Sheldon
;查询现在是:
DocumentControlNumber = 'Nat'l Bk of Sheldon'
格式不正确。由于不允许正确的参数化,因此您将需要“转义”该值。如果我不得不猜测,请执行以下操作之一:
DocumentControlNumber = 'Nat''l Bk of Sheldon'
要么
DocumentControlNumber = 'Nat\'l Bk of Sheldon'
(请注意,
\
n C#也需要转义,或使用逐字字符串文字)两者都可以通过
string.Replace
实现;例如dcn.Replace("'","''")
(在string.Format
的参数中)。关于c# - 'L'运算符后缺少操作数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38124263/