如何在DataView.RowFilter中检查空白

假设我有一个名为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检查列的状态。

否则有一个像T-SQL一样的Isnull(,)函数:

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

我假设您需要检索A列中的值既不为空也不是”的所有记录

正确的expr是:

  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,”)将返回数字。 数字<> 0的Eval会抛出异常。