Как проверить наличие пустых данных в DataView.RowFilter - PullRequest
5 голосов
/ 19 мая 2009

Предполагая, что у меня есть столбец с именем A, и я хочу проверить, является ли A нулевым или пустым, как правильно проверить это с помощью RowFilter DataView:

DataTable dt = GetData();

DataView dv = new DataView(dt);

dv.RowFilter = "A IS NOT NULL OR A IS NOT ''";

Выше не похоже, что работает.

Ответы [ 3 ]

13 голосов
/ 19 мая 2009

Вы привязаны к .net <3.5? Если нет, вы можете использовать linq для проверки состояния столбца. </p>

В противном случае есть функция Isnull(,), как в T-SQL:

dv.RowFilter = "Isnull(a,'') <> ''";
6 голосов
/ 20 мая 2009

Я предполагаю, что вам нужно получить все записи, где значение в столбце A не равно ни NULL, ни ''

Правильное выражение:

 dv.RowFilter = "A IS NOT NULL AND A <> ''";

И для извлечения цикла отфильтрованных записей в dv.ToTable () вот так:

foreach (DataRow dr in dv.ToTable().Rows)
    Console.WriteLine(dr["A"]);

Это должно работать ... ура !!

5 голосов
/ 27 февраля 2012

Вы можете добавить

dv.RowFilter = "CONVERT(Isnull(a,''), System.String) <> ''"

если столбец имеет тип данных числа, поскольку Isnull (a, '') вернет число. Eval из числа <> 0 выдает исключение.

...