【问题标题】:Why is BindingSource.Filter hiding null values in DataGridView?为什么 BindingSource.Filter 在 DataGridView 中隐藏空值?
【发布时间】:2015-07-16 15:24:08
【问题描述】:

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

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

有谁知道为什么过滤器会隐藏具有 Null 值的行以及具有值“RETEST PASSED”的行?在我看来,逻辑似乎是合理的。我将其解释为“如果 repair_action 中的值不等于 'RETEST PASSED' 则显示行”。这不是怎么回事吗?

提前谢谢你。

【问题讨论】:

    标签: c# datagridview bindingsource


    【解决方案1】:

    怎么样

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

    HTH

    【讨论】:

      【解决方案2】:

      解释

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

      解决方案

      参考 Luc Morin 提供的回复

      【讨论】:

      • 感谢涂鸦的解释!这现在更有意义了。
      猜你喜欢
      • 2015-02-17
      • 1970-01-01
      • 1970-01-01
      • 2014-08-28
      • 1970-01-01
      • 2013-11-20
      • 2013-09-03
      • 1970-01-01
      • 2013-06-04
      相关资源
      最近更新 更多