2016-06-30 13 views
1

ich unten Störung erhalten in meinem Code:Fehlender Operanden nach 'L' Operator

Fehlenden Operanden nach 'L' Operator.

gedebuggt ich den Code und festgestellt, dass es in folgenden Zeile auftritt:

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

Hier auftritt, wenn dcn ' in seiner vollen Zeichenfolge enthält.

Was ist der genaue Grund dafür?

Zum Beispiel: dcn: - Natl Bk von Sheldon

+0

Beispielwerte für 'dcn' ?? –

+0

Warum sollte ein Dokument _number_ einen Apostroph enthalten? Müssen Sie das einfache Zitat durch zwei einzelne Zitate ersetzen, um es zu entgehen? –

Antwort

6

Hier benoetigen es auftritt, wenn dcn ' in seiner vollen Zeichenfolge enthält.

Yup; ein häufiges Problem bei der Verwendung von Verkettungen; Lass uns das Beispiel dcn als Nat'l Bk of Sheldon von dir in Frage stellen; Die Abfrage lautet jetzt:

DocumentControlNumber = 'Nat'l Bk of Sheldon' 

was falsch ist. Da dies keine ordnungsgemäße Parametrierung erlaubt, müssen Sie den Wert "flüchten";

DocumentControlNumber = 'Nat''l Bk of Sheldon' 

oder

DocumentControlNumber = 'Nat\'l Bk of Sheldon' 

(unter Hinweis darauf, dass die \ n C# auch Bedürfnisse zu entkommen, oder die Verwendung von wörtlich Stringliterale)

Entweder: Wenn ich von einem erraten sollte über eine string.Replace erreichbar sein; zum Beispiel dcn.Replace("'","''") (im Parameter zu string.Format).

+0

Danke, es hat geholfen :) – Neel

2

Die Select erfordert die Zeichenfolge in einem bestimmten Format zu sein, wenn Sie ein ' die Zeichenfolge haben, sind nicht mehr gültig. Sie müssen Anführungszeichen entkommen, indem sie jeden ' mit ''

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

repacing wenn dcn ein string ist nicht die .ToString()

+0

Danke, es hat geholfen :) – Neel

Verwandte Themen