最好的方法来检查一个数据表是否有一个空值

检查数据表是否有空值的最好方法是什么?

在我们的场景中,大多数情况下,一列将全部为空值。

(这个数据表由第三方应用程序返回 – 我们正在尝试在我们的应用程序处理数据表之前进行调用)

尝试将列的值与DBNull.Value值进行比较,以您认为合适的方式过滤和pipe理空值。

 foreach(DataRow row in table.Rows) { object value = row["ColumnName"]; if (value == DBNull.Value) // do something else // do something else } 

有关DBNull类的更多信息


如果你想检查表中是否存在空值,你可以使用这个方法:

 public static bool HasNull(this DataTable table) { foreach (DataColumn column in table.Columns) { if (table.Rows.OfType<DataRow>().Any(r => r.IsNull(column))) return true; } return false; } 

这会让你写这个:

 table.HasNull(); 
 foreach(DataRow row in dataTable.Rows) { if(row.IsNull("myColumn")) throw new Exception("Empty value!") } 

你可以循环引用行和列,检查空值,跟踪是否有一个空的布尔值,然后检查它在循环遍历表并处理它。

 //your DataTable, replace with table get code DataTable table = new DataTable(); bool tableHasNull = false; foreach (DataRow row in table.Rows) { foreach (DataColumn col in table.Columns) { //test for null here if (row[col] == DBNull.Value) { tableHasNull = true; } } } if (tableHasNull) { //handle null in table } 

你也可以从foreach循环中拿出一个break语句来例如

 //test for null here if (row[col] == DBNull.Value) { tableHasNull = true; break; } 

通过表格的其余部分保存循环。