如何在DataView.RowFilter中检查空白

时间:2009-05-19 17:11:29

标签: c# asp.net dataview

假设我有一个名为A的列,我想检查A是空还是空白,使用DataView的RowFilter检查这个的正确方法是什么:

DataTable dt = GetData();

DataView dv = new DataView(dt);

dv.RowFilter = "A IS NOT NULL OR A IS NOT ''";

上述情况似乎并不奏效。

3 个答案:

答案 0 :(得分:13)

你是否与.net<相关联3.5?如果没有,您可以使用linq检查列的状态。

否则就会出现像{T-SQL一样的Isnull(,)函数:

dv.RowFilter = "Isnull(a,'') <> ''";

答案 1 :(得分:6)

我假设您需要检索A列中的值既不为空也不是“

的所有记录

正确的expr是:

 dv.RowFilter = "A IS NOT NULL AND A <> ''";

并在dv.ToTable()上检索已过滤的记录循环,如下所示:

foreach (DataRow dr in dv.ToTable().Rows)
    Console.WriteLine(dr["A"]);

这应该有用......欢呼!!

答案 2 :(得分:5)

您可以添加

dv.RowFilter = "CONVERT(Isnull(a,''), System.String) <> ''"

如果列的数据类型为数字,则Isnull(a,'')将返回数字。 Eval of number&lt;&gt; 0会抛出异常。