Привіт, я зіткнувся з дивним питанням і не можу зрозуміти, що відбувається. У мене є 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 дає НЕВІДОМЛЕНИЙ результат.
Рішення
Зверніться до відповіді, наданої Люком Моріном