2012-05-03 14 views
15

Come si scrive codice che legge un DataRow ma, se archiviato in DataRow non è presente, lo salta e si sposta, come ad esempio:Verificare che una colonna sia presente nel DataRow prima di leggere il suo valore

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

Ora, la colonna BarcodeIssueUnit può appartenere alla tabella ma, in alcuni casi, quella colonna non esiste nella tabella. Se non è lì e l'ho letto, ottengo questo errore:

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

Voglio solo eseguire un controllo se la colonna è lì ok, far vedere i valori, se non lo è, basta saltare quella parte e andare sopra.

+0

VB, ancora un duplicato: http://stackoverflow.com/questions/1984893/how-to-check-if-a-column-with-a-date-name-exists-in-a-datarow – nawfal

+0

Possibile duplicato di [Come posso verificare se la colonna esiste in un oggetto DataRow? ] (http://stackoverflow.com/quest ioni/9677852/how-can-i-validate-if-the-column-exist-in-a-datarow-object) –

risposta

38

Controllare il nome della colonna utilizzando DataRow.Table.Columns. Se il valore convertito viene fuori altrimenti.

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

Ok, come si scrive? – CrBruno

+0

ok, grazie capito – CrBruno

1

È possibile controllare se il regime tavolo per la riga corrente contiene una colonna specifica:

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

L'OP indica chiaramente che è una riga di dati. – Shai

+0

Da qui il prefisso 'dr_'. –

Problemi correlati