2012-05-03 10 views
15

Cómo escribo un código que lee un DataRow pero, si está archivado en DataRow no está allí, simplemente se salta y se mueve, como este por ejemplo:Verifique que exista una columna en el DataRow antes de leer su valor

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

Ahora, la columna BarcodeIssueUnit puede pertenecer a la tabla pero, en algunos casos, esa columna no existe en la tabla. Si no está allí y lo leí, me sale este error:

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

sólo quiero ejecutar una comprobación de si la columna está ahí bien, vamos a ver los valores, si no es así, simplemente saltar esa parte e ir en.

+0

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

+0

Posible duplicado de [¿Cómo puedo validar si la columna existe en un objeto DataRow? ] (http://stackoverflow.com/quest ions/9677852/how-can-i-validate-if-the-column-exist-in-a-datarow-object) –

Respuesta

38

Compruebe el nombre de la columna usando DataRow.Table.Columns. Si hay otro valor convertido, salga.

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

Ok, ¿cómo escribirlo? – CrBruno

+0

bien, gracias – CrBruno

1

Puede comprobar si el esquema de tabla para la fila actual contiene una columna específica:

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

El OP indica claramente que es una fila de datos. – Shai

+0

De ahí el prefijo 'dr_'. –

Cuestiones relacionadas