为什么BindingSource.Filter在DataGridView中隐藏空值?

时间:2015-07-16 15:24:08

标签: c# datagridview bindingsource

您好我遇到了一个奇怪的问题,无法弄清楚发生了什么。我有一个DataGridView控件绑定到我的表单上的BindingSource和三个CheckBox控件,如果列中的值为Null,则为Null过滤值。第三个CheckBox给我带来了麻烦。如果列中的值等于' RETEST PASSED',我会尝试隐藏值,但它也会导致隐藏Null值。以下是我设置过滤器的代码行:

_bSource.Filter = "repair_action <> 'RETEST PASSED'";

有谁知道为什么过滤器会隐藏具有Null值的行以及值为&#39; RETEST PASSED&#39 ;?的行在我的脑海中,逻辑似乎是合理的。我把它解释为&#34;如果repair_action中的值不等于“退回通过”&#39;然后显示行&#34;。这不是发生了什么吗?

提前谢谢。

2 个答案:

答案 0 :(得分:0)

怎么样

 _bSource.Filter = "repair_action Is Null Or repair_action <> 'RETEST PASSED'";

HTH

答案 1 :(得分:0)

解释

在SQL WHERE子句中,无法使用比较运算符将NULL与任何值进行比较。 “NULL = NULL”为false。 Null不是一个值。因此,与Null的任何比较都会提供UNKNOWN结果。

解决方案

参考Luc Morin提供的回复