DataTable , Фильтры и выбор количества записей.
Эта публикация из цикла о том, как делать не надо. А делать надо так: сначала читать MSDN затем творить, а не наоборот. И в результате проблема: «А чего это он мне 56 записей показывает? Ведь я фильтр наложил и должна быть ровно 1 запись!».
Так вот — если наложили фильтр на DataTable, то вот так вот делать нельзя:
DataTable table = new DataTable();
//Здесь - заполняем нашу таблицу чем нибудь...
table.DefaultView.RowFilter = "[поле_таблицы]=значение";
//Если значение символьное - то в одинарных ковычках.
int count = table.Rows.Count;
//Узнаём сколько строк после фильтра неполучится - выдаст общее количество!
string value = table.Rows[0]["поле_таблицы"].ToString();
//Получаем значение ячейки из первой строки (тоже без фильтра сделает).
Надо делать вот так:
DataTable table = new DataTable();
//Здесь - заполняем нашу таблицу чем нибудь...
table.DefaultView.RowFilter = "[поле_таблицы]=значение";
//Если значение символьное - то в одинарных ковычках.
int count = table.DefaultView.Count;
//Узнаём сколько строк осталось после наложения фильтра.
string value = table.DefaultView[0]["поле_таблицы"].ToString();
//Получаем значение ячейки из первой строки.
Вот и всё.
P.S.
Квадратные название поля в фильтре обязательно надо заключать в квадратные скобки, особенно если вы накладываете фильтр по нескольким полям.