2012-05-03 3 views
15

lesen. Wie schreibe ich Code, der eine DataRow liest, aber wenn sie in DataRow abgelegt ist, wird sie einfach übersprungen, wie zum Beispiel:Vergewissern Sie sich, dass eine Spalte in der DataRow existiert, bevor Sie den Wert

string BarcodeIssueUnit; 
if (dr_art_line["BarcodeIssueUnit"].ToString().Length <= 0) 
{ 
    BarcodeIssueUnit = ""; 
} 
else 
{ 
    BarcodeIssueUnit = dr_art_line["BarcodeIssueUnit"].ToString(); 
} 

Jetzt kann die Spalte BarcodeIssueUnit zur Tabelle gehören, aber in einigen Fällen ist diese Spalte nicht in der Tabelle vorhanden. Wenn er nicht da ist und ich lese es, bekomme ich diesen Fehler:

System.ArgumentException: Column `BarcodeIssueUnit` 
does not belong to table Line. 

Ich möchte nur einen Scheck laufen, wenn die Spalte dort in Ordnung ist, lassen Sie die Werte sehen, wenn es nicht, nur den Teil überspringen und gehen auf.

+0

VB, noch ein Duplikat: http://stackoverflow.com/questions/1984893/how-to-check-wenn-eine-Spalte-mit-einem-gegebenen-Namen-existiert-in-einem-Datarow – nawfal

+0

Mögliche Duplikate von [Wie kann ich überprüfen, ob die Spalte in einem DataRow-Objekt vorhanden ist? ] (http://stackoverflow.com/quest ionen/9677852/how-can-i-validate-wenn-die-spalte-exist-in-a-datarow-objekt) –

Antwort

38

Suchen Sie nach dem Spaltennamen mit DataRow.Table.Columns. Wenn da Wert umwandelt sonst raus.

BarcodeIssueUnit = dr_art_line.Table.Columns.Contains("BarcodeIssueUnit")? 
        dr_art_line["BarcodeIssueUnit"].ToString(): ""; 
+0

Ok, wie schreibe ich? – CrBruno

+0

ok, danke, es hat – CrBruno

1

Sie können überprüfen, ob das Tabellenschema für die aktuelle Zeile eine bestimmte Spalte enthält:

if (!dr_art_line.Table.Columns.Contains("BarcodeIssueUnit")) 
{ 
    BarcodeIssueUnit = ""; 
} 
else 
{ 
     BarcodeIssueUnit = dr_art_line["BarcodeIssueUnit"].ToString(); 
} 
+0

Das OP sagt eindeutig, es ist eine Datenzeile. – Shai

+0

Daher das Präfix 'dr_'. –

Verwandte Themen