我对这个linq查询做错了什么(查询数据表)

时间:2012-06-01 13:45:41

标签: c# winforms linq datatable

我正在将我的Windows窗体应用程序连接到他们的Access数据库(呃,我知道),并且无法获取我的linq查询以返回任何内容。

var matchDateField = from myRow in boilerDT.AsEnumerable()
                     where myRow.Field<DateTime>("EntryDate").ToShortDateString() == dateTimePicker1.Value.ToShortDateString()
                     select myRow;

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

获取所有行:

IEnumerable<DataRow> dateFieldQuery =
                    from myRow in boilerDT.AsEnumerable()
                    select myRow;

按日期过滤:

IEnumerable<DataRow> matchDateField =
                dateFieldQuery.Where(p => p.Field<DateTime>("EntryDate").Date == dateTimePicker1.Value);

所以在这里你使用延迟执行,它允许组合多个查询或扩展查询。扩展查询时,会将其修改为包含新操作,最终执行将反映更改。

第一个查询返回所有行,第二个查询扩展第一个查询,使用Where返回具有特定日期的所有行。