Linq to DataTable查询缺少结果集中的第一条记录

时间:2013-07-25 07:18:47

标签: c# linq datatable

DateTime start = d.Key; // say 2013-06-01
DateTime end = d.Key.AddDays(d.Value); // say end=2013-06-07

var filteredRecords = from n in dt.AsEnumerable()
                      orderby n["Date"] ascending
                      where (DateTime)n["Date"] >= start && (DateTime)n["Date"] <= end
                      select n;

查询工作正常,但它始终缺少第一个记录,即第一个日期的数据(2013-06-01)。我用数据库检查了它,我得到了丢失日期的数据。我不知道我做错了什么,请帮忙。

提前致谢!

2 个答案:

答案 0 :(得分:2)

尝试仅使用Date部分日期进行比较:

from r in dt.AsEnumerable()
let date = r.Field<DateTime>("Date")
where date.Date >= start.Date && date.Date <= end.Date
orderby date ascending
select r;

答案 1 :(得分:2)

var recs = dt.AsEnumerable().Where(x=>x.Field<DateTime>("Date") >= start && x.Field<DateTime>("Date") <= end)
                         .OrderBy(x => x.Field<DateTime>("Date"));