2012-05-03 4 views
15

Как написать код, который читает DataRow, но если он не зарегистрирован в DataRow, он просто пропускает его и перемещается, например, так:Убедитесь, что столбец существует в DataRow перед чтением его значения.

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

Теперь столбец BarcodeIssueUnit может принадлежать к таблице, но в некоторых случаях этот столбец не существует в таблице. Если это не так, и я прочитал его, я получаю эту ошибку:

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

Я просто хочу, чтобы запустить проверку, если столбец есть хорошо, пусть увидеть значение, если это не так, просто пропустить эту часть и перейти на.

+0

VB, все еще дубликат: http://stackoverflow.com/questions/1984893/how-to-check-if-a-column-with-a-given-name-exists-in-a-datarow – nawfal

+0

Возможный дубликат [Как проверить, существует ли столбец в объекте DataRow? ] (http://stackoverflow.com/quest ионы/9677852/how-can-i-validate-if-the-column-exist-in-a-datarow-object) –

ответ

38

Проверьте имя колонки, используя DataRow.Table.Columns. Если там конвертирует значение, то еще выйдет.

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

Хорошо, как это записать? – CrBruno

+0

ОК, спасибо, это – CrBruno

1

Вы можете проверить, если схема таблицы для текущей строки содержит определенный столбец:

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

OP четко заявляет, что это строка данных. – Shai

+0

Следовательно, префикс 'dr_'. –

Смежные вопросы