我希望在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));
答案 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
,然后您不需要每次都解析它。