Номер строки набора данных только с заполненными строками - PullRequest
0 голосов
/ 04 ноября 2011

Если я использую ds.Tables[0].Rows.Count, я получаю количество строк независимо от того, содержат ли строки данные, я не хочу считать строки пустыми, пробелами или пустыми, есть ли способ сделать это на самом деле без чтения строка за строкой?

Ответы [ 2 ]

0 голосов
/ 04 ноября 2011

Если вам удастся выделить нужные строки с помощью фильтра, вы можете использовать любой из этих подходов:

DataView myView = new DataVie(ds.Tables[0]);

myView.RowFilter = "NAME IS NOT NULL";

int count = myView.Count;

или также с помощью Select ...

DataRow[] myRows = ds.Tables[0].Select("NAME IS NOT NULL");

int count = myRows.Length;

, затем вВ первом случае вы можете выполнить итерацию в DataView, а во втором - в массиве DataRow.Для привязки к элементам управления пользовательского интерфейса, вероятно, лучше использовать DataView.

0 голосов
/ 04 ноября 2011

yes- DataTable реализует интерфейс IEnumerable, что означает, что вы можете использовать LINQ для запроса:
ds.Tables[0].Count(row => !string.IsNullOrEmpty(row["Name"]) /*etc..*/);
(если вы еще не знаете linq - вам следует ознакомьтесь . это здорово.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...