DataTable dt = GetDataTable();
if(field=="TaskId")
{
string value = ((e.Item as GridFilteringItem)[field] as GridTableCell).Column.CurrentFilterValue
int VALUE = Int32.Parse(value);
int numberOfRecords = dt.Select("TaskId = VALUE").Length;
我想计算DataTable
中TaskId == value
的行数。
此代码抛出错误,表示找不到任何列TaskId [value]。
答案 0 :(得分:2)
替换此行
int numberOfRecords = dt.Select("TaskId = VALUE").Length;
使用
int numberOfRecords = dt.Select("TaskId = " + VALUE).Length;
你在(“”)
中传递了VALUE答案 1 :(得分:1)
您可以使用简单的for循环来迭代每一行,查看每行的TaskId
字段。如果符合条件,请增加计数器。
string value = ((e.Item as GridFilteringItem)[field] as GridTableCell).Column.CurrentFilterValue
int count = 0;
for(int i = 0; i < dt.Rows.Count; i++)
{
if(dt.Rows[i]["TaskId"].ToString() == value)
{
count++;
}
}
要么你也可以使用LINQ。 rows变量将包含符合条件的DataRows集合。
var rows = from row in dt.AsEnumerable()
where row.Field<string>("TaskId") == value
select row;
int count = rows.Count<DataRow>();