数据集行号仅包含填充行

时间:2011-11-04 09:36:06

标签: c# dataset

如果我使用ds.Tables[0].Rows.Count,无论行中是否有数据,我都会得到行数,我不想计算空,空白或空行,有没有办法实际做到这一点没有逐行阅读?

2 个答案:

答案 0 :(得分:0)

是 - DataTable实现IEnumerable接口,这意味着您可以使用LINQ查询它:
ds.Tables[0].Count(row => !string.IsNullOrEmpty(row["Name"]) /*etc..*/);
(如果你还不知道linq-你应该familiarize yourself。这很棒。)

答案 1 :(得分:0)

如果您设法使用过滤器隔离所需的行,则可以使用以下任何方法:

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

myView.RowFilter = "NAME IS NOT NULL";

int count = myView.Count;

或选择...

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

int count = myRows.Length;

然后在第一种情况下,你可以迭代DataView,在第二种情况下,你迭代DataRow数组。对于绑定到UI控件,DataView可能更好。