在我的代码后面,我在数据集中放了一个查询结果,返回一个像下面这样的表:
Sl_NO COMPLEATED_ON SCORE IS_PRESENT MAX_VALUE
1 29/07/2010 4 0 12
2 29/07/2010 5 0 13
3 29/07/2010 6 1 23
4 29/07/2010 7 1 44
5 6 1
6 5 0
7 4 1
我的要求是我需要计算非空行的总数,列名是COMPLEATED_ON。我的意思是从上面的例子它应该返回4,因为剩下的三行COMPLEATED_ON是空的。可以告诉我怎么做这在C#?
答案 0 :(得分:11)
试试这个:
dsDataSet.Tables[0].Select("COMPLEATED_ON is not null").Length;
答案 1 :(得分:1)
您可以使用DataTable的Select
方法:
DataTable table = DataSet.Tables[tableName];
string expression = "COMPLEATED_ON IS NOT NULL AND COMPLEATED_ON <> ''";
DataRow[] foundRows = table.Select(expression);
int rowCount = foundRows.Length;
或者这是一种蛮力的方式:
int count = 0;
DataTable table = DataSet.Tables[tableName];
foreach (DataRow row in table.Rows)
{
string completed = (string)row["COMPLEATED_ON"];
if (!string.IsNullOrEmpty(completed))
{
count++;
}
}
答案 2 :(得分:-1)
您可以使用LINQ来确定:
var nonEmptyRows = (from DataRow record in myDataSet.Tables[0].AsEnumerable()
where !string.IsNullOrEmpty(record.Field<string>("COMPLEATED_ON"))
select record).Count();
nonEmptyRows
将为int
,为您提供非空行数。