/ / Dlaczego BindingSource.Filter ukrywa wartości null w DataGridView? - c #, datagridview, bindingsource

Dlaczego BindingSource.Filter ukrywa wartości null w DataGridView? - c #, datagridview, bindingsource

Cześć, wpadłem na dziwny problem i nie mogę zrozumieć, co się dzieje. Mam DataGridView kontrola, która jest powiązana z a BindingSource na mojej formie i trzech CheckBox kontroluje, czy wartości filtru są wyłączone, jeśli wartość w kolumnie ma wartość Null, NIE NULL. Trzeci CheckBox powoduje problemy. Próbuję ukryć wartości, jeśli wartość w kolumnie jest równa „PRZYWRÓĆ PASSED”, ale spowoduje to również ukrycie wartości Null. Oto wiersz kodu, w którym ustawiłem filtr:

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

Czy ktoś wie, dlaczego Filtr ukrywałby wierszez wartościami Null oraz wierszami o wartości „PRZYWRÓCIĆ PRZEKROCZONE”? W mojej głowie logika wydaje się rozsądna. Zinterpretowałem to jako „Jeśli wartość w naprawie awarii nie równa się„ PRZYWRÓCIĆ PRZEKONANE ”, to wyświetl wiersz”. Czy to nie jest to, co się dzieje?

Z góry dziękuję.

Odpowiedzi:

0 dla odpowiedzi № 1

Co powiesz na

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

HTH


0 dla odpowiedzi nr 2

Wyjaśnienie

W klauzuli SQL WHERE NULL nie można porównywać z żadną wartością za pomocą operatorów porównania. „NULL = NULL” jest fałszywe. Null nie jest wartością. Dlatego każde porównanie z wartością Null zapewnia wynik NIEZNANY.

Rozwiązanie

Zapoznaj się z odpowiedzią Luc Morin