如果我使用ds.Tables[0].Rows.Count
,无论行中是否有数据,我都会得到行数,我不想计算空,空白或空行,有没有办法实际做到这一点没有逐行阅读?
答案 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可能更好。