在我的例子中,我正在传递一个 sql 查询并获取数据集中的数据,但是当我尝试获取 ParentId 列包含 NULL 的行时出现问题。这是一段代码。
DataSet ds = GetDataSet("Select ProductId,ProductName,ParentId from ProductTable");
//ds is not blank and it has 2 rows in which ParentId is NULL
DataRow[] Rows = ds.Tables[0].Select("ParentId IS NULL");
但我仍然没有得到任何行。 需要帮忙。谢谢。
最佳答案
使用强类型DataRow
扩展方法Field
它还支持可空类型:
IEnumerable<DataRow> rows = ds.Tables[0].AsEnumerable()
.Where(r => !r.Field<int?>("ParentId").HasValue);
请注意,我使用了 Enumerable.Where
,这是一种 Linq 扩展方法来过滤表格。
如果你想要一个数组使用ToArray
,如果你想要一个新的DataTable
使用CopyToDataTable
。如果您只想枚举结果,请使用 foreach
。
foreach(DataRow row in rows)
{
// ...
}
关于c# - 如何检查 DataTable 上的 IS NULL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15523917/