使用变量计算DataTable中的行数

时间:2018-05-11 13:04:41

标签: c# datatable

我希望在DataTable中获得符合特定条件的行数。我的问题(我认为)是我试图使用列名作为Select语句的一部分。所以这就是我所拥有的:

string twodigmonth = DateTime.Now.ToString("MM");
DataRow[] Test= dataTable1.Select(" " + dateasstring.Split('/')[0] + " = " + "'" + twodigmonth + "'");

我收到编译错误:

  

当前上下文中不存在名称dateasstring。

但我的数据表中有一个列是名为this的字符串数据类型。

DataTable dataTable1 = new DataTable();
dataTable1.Columns.Add("dateasstring", typeof(string));

1 个答案:

答案 0 :(得分:1)

为什么不使用现代且功能更强大的LINQ,而不是摆弄古怪的DataTable.Select语法?

int currentMonth = DateTime.Today.Month;
int matchingRows = dataTable1.AsEnumerable()
 .Count(r => DateTime.Parse(r.Field<string>("dateasstring")).Month == currentMonth);

我会将dateasstring存储为真实DateTime,然后您不需要每次都解析它。