簡體   English   中英

'L'運算符后缺少操作數

[英]Missing operand after 'L' operator

我在代碼中遇到以下錯誤:

“ 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都可以通過string.Replace實現。 例如dcn.Replace("'","''") (在string.Format的參數中)。

如果您輸入' ,則Select要求字符串采用特定格式,該字符串不再有效。 您需要通過在每個'前面加上''來對引號進行轉義

DataRow[] documents = this.DataSet.Results_Documents.Select(
                            String.Format("DocumentControlNumber = '{0}'"
                                         , dcn.ToString().Replace("'", "''")
                            ), null, DataViewRowState.CurrentRows);

如果dcnstring ,則不需要.ToString()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM