2012-05-03 10 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. 

私はちょうど列がOKがあればそうでない場合は、単にその部分をスキップして行く、の値を見てみましょう、チェックを実行したい:それはそこではないと私はそれを読めば、私はこのエラーを取得しますに。

+0

VB、まだ重複:http://stackoverflow.com/questions/1984893 /与えられた名前のある列をチェックする方法 - データ内に存在する場合 – nawfal

+0

[DataRowオブジェクトに列が存在するかどうかを検証するにはどうすればよいですか? ](http://stackoverflow.com/quest)イオン/ 9677852 /データオブジェクトの列に存在する場合の検証方法 –

答えて

38

DataRow.Table.Columnsを使用して列名を確認してください。それ以外の場合は値を変換します。

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

どうすればいいですか? – CrBruno

+0

ok、ありがとうございました – CrBruno

1

現在の行のテーブル方式は、特定の列が含まれているかどうかをチェックすることができます:

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

OPはデータ行であることを明確に示しています。 – Shai

+0

したがって、 'dr_'接頭辞。 –

関連する問題