如何选择具有空值的单元格?

时间:2018-01-06 20:07:08

标签: c# datagridview

使用String className = "YourClass"; Class someClass = Class.forName( className ); Constructor constructor = (Constructor) someClass.getConstructor(); Object someInstance = constructor.newInstance(); // now you can cast as allways. (YourClass) (someInstance) 我在DefaultView.RowFilterDataGridView)中选择数据 我将列中的不同值加载到DataTable中,然后检查TreeView以进行过滤。选中Item个过滤器。 喜欢这个过滤器:

Item

这很好用。

但是当你检查一个空的STREET IN ('A_STREET','B_STREET','C_STREET') 节点时,因为在我的TreeView中有空单元格,那么过滤器将是:

DataColumn

这不起作用。
如何使用STREET IN ('A_STREET','B_STREET','')

过滤DataTable中的空单元格

2 个答案:

答案 0 :(得分:1)

IN()条件不适用于您发现的NULL。为此,您必须添加另一个条件:

DefaultView.RowFilter = "STREET IN('A_STREET','B_STREET') OR STREET IS NULL OR STREET = ''"

或者,您可以使用ISNULL()功能:

DefaultView.RowFilter = "STREET IN('A_STREET','B_STREET') OR ISNULL(STREET, '') = ''"

答案 1 :(得分:0)

您可以考虑的另一件事是,在将数据从数据库移植到服务器时,您可以将空值转换为空字符串,如下所示:

对于SQL Server,不是将STREET放在查询字符串中,而是:

IFNULL(STREET, '') AS STREET

对于Oracle,不是将STREET放在查询字符串中,而是:

NVL(STREET) STREET

我不建议使用数字数据,但它可能很适合使用字符串并简化您的应用程序代码。