您好我遇到了一个奇怪的问题,无法弄清楚发生了什么。我有一个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;。这不是发生了什么吗?
提前谢谢。
答案 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提供的回复