How do I check for blank in DataView.RowFilter

泄露秘密 提交于 2019-12-10 03:39:35

问题


Assuming I have a column called A and I want to check if A is null or blank, what is the proper way to check for this using the DataView's RowFilter:

DataTable dt = GetData();

DataView dv = new DataView(dt);

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

The above doesn't seem to work though.


回答1:


Are you tied to .net < 3.5? If not you can use linq to check the state of a column.

Otherwise there is an Isnull(,) function like in T-SQL:

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



回答2:


I am assuming you need to retrieve all the records where the value in column A is neither null nor ''

The correct expr is:

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

And to retrieve the filtered records loop on dv.ToTable() like this:

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

This should work ... cheers!!




回答3:


You can add

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

if a column has data type of number as Isnull(a,'') would return number. Eval of number <> 0 would throw the exception.



来源:https://stackoverflow.com/questions/883992/how-do-i-check-for-blank-in-dataview-rowfilter

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!