如何编写读取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 :(得分:46)
使用DataRow.Table.Columns
检查列名称。如果有转换价值,那么就出来了。
BarcodeIssueUnit = dr_art_line.Table.Columns.Contains("BarcodeIssueUnit")?
dr_art_line["BarcodeIssueUnit"].ToString(): "";
答案 1 :(得分:5)
if(dr_art_line.Table.Columns.Contains("BarcodeIssueUnit"))
{
BarcodeIssueUnit = dr_art_line.Field<String>("BarcodeIssueUnit");
}
else
{
BarcodeIssueUnit = String.Empty;
}
http://msdn.microsoft.com/en-us/library/system.data.datacolumncollection.contains.aspx
答案 2 :(得分:1)
您可以检查当前行的表方案是否包含特定列:
if (!dr_art_line.Table.Columns.Contains("BarcodeIssueUnit"))
{
BarcodeIssueUnit = "";
}
else
{
BarcodeIssueUnit = dr_art_line["BarcodeIssueUnit"].ToString();
}