假设我有一个名为 A 的列,并且我想检查 A 是否为空或空白,那么使用 DataView 的 RowFilter 进行检查的正确方法是什么:
DataTable dt = GetData();
DataView dv = new DataView(dt);
dv.RowFilter = "A IS NOT NULL OR A IS NOT ''";
上面的方法似乎不起作用。
您是否绑定到 .net < 3.5?如果没有,您可以使用 linq 检查列的状态。
否则有一个Isnull(,)
类似 T-SQL 的函数:
dv.RowFilter = "Isnull(a,'') <> ''";
我假设您需要检索 A 列中的值既不是 null 也不是 '' 的所有记录
正确的表达式是:
dv.RowFilter = "A IS NOT NULL AND A <> ''";
并在 dv.ToTable() 上检索过滤后的记录循环,如下所示:
foreach (DataRow dr in dv.ToTable().Rows)
Console.WriteLine(dr["A"]);
这应该工作......干杯!
你可以加
dv.RowFilter = "CONVERT(Isnull(a,''), System.String) <> ''"
如果列的数据类型为数字,则 Isnull(a,'') 将返回数字。number <> 0 的 Eval 将引发异常。