0

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

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

有什么建议么?

4

1 回答 1

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 返回具有特定日期的所有行。

于 2012-06-01T13:53:29.183 回答