我遇到过这样的情况,其中datatable的列名是动态的。在获取数据时我想检查是否存在列。
DataTable table = ds.Table["Sample1"]
if(table.Row.Count > 0)
{
foreach(DataRow dr in table.Rows )
{
if(dr.Table.Column.Contain("DateInfo"))
{
// store value in variable
// first approach
}
if(table.Column.Contain("DateInfo"))
{
// store value in variable
// second approach
}
}
}
哪种方法最好?
答案 0 :(得分:2)
这还不够:
第一种方法:只需检查整个DataTable。
datatable.Columns.Contains("column")
第二种方法:将检查DataTable中的每一行集合
dr.Table.Columns.Contains("column")
第三种方法:获取DataColumnCollection对象中的每一列,然后检查它是否包含特定字段。
DataColumnCollection columns = datatable.Columns;
if (columns.Contains(columnName))
所以这些方法都以自己的方式更好。你可以使用你发现的更好的东西。
答案 1 :(得分:0)
这是最好的一个
dr.Table.Column.Contain("DateInfo")
foreach循环有时一次获得单行,如果此方法中有任何条件