/ / Чому BindingSource.Filter приховує нульові значення в DataGridView? - c #, datagridview, джерело прив'язки

Чому BindingSource.Filter приховує нульові значення в DataGridView? - c #, datagridview, bindingsource

Привіт, я зіткнувся з дивним питанням і не можу зрозуміти, що відбувається. У мене є DataGridView контроль, який прив’язаний до a BindingSource на мою форму і три CheckBox елементи керування, які фільтрують значення залежно від того, якщо значення у стовпці є Null, NOT Null. Третій CheckBox викликає у мене проблеми. Я намагаюся приховати значення, якщо значення в стовпці дорівнює "ВЗАЄМО ПАРАД", але це також призведе до приховування Нульових значень. Ось рядок коду, де я встановлюю фільтр:

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

Хтось знає, чому Фільтр ховав рядкизі значеннями Null, а також рядками зі значенням "RETEST PASSED"? У моїй голові логіка здається здоровою. Я інтерпретую це як "Якщо значення в програмі відновлення не відповідає" RETEST PASSED ", тоді відображається рядок". Це не те, що відбувається?

Спасибі заздалегідь.

Відповіді:

0 для відповіді № 1

Як на рахунок

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

HTH


0 для відповіді № 2

Пояснення

У пункті SQL WHERE, NULL не можна порівнювати з будь-яким значенням за допомогою операторів порівняння. "NULL = NULL" хибно. Нуль не є цінністю. Тому будь-яке порівняння з Null дає НЕВІДОМЛЕНИЙ результат.

Рішення

Зверніться до відповіді, наданої Люком Моріном