Query Datatable返回同月的alls行

时间:2017-01-03 13:44:04

标签: c# linq datatable

我有一个数据表,我正在查询值:

res = (from rows in dtInvoicesStamped.AsEnumerable()
       where rows.Field<string>("Centre Name") == col.Name &&
             (rows.Field<string>("Doc Type") == row.Name
       select rows).CopyToDataTable();

它工作正常,直到我需要查询特定月份的值:

res = (from rows in dtInvoicesStamped.AsEnumerable()
       where rows.Field<string>("Centre Name") == col.Name &&
             (rows.Field<string>("Doc Type") == row.Name
             && rows.Field<DateTime>("Date Loaded") == period.Month)
       select rows).CopyToDataTable();

**差异在上面代码的第4行

如果我尝试添加句点,即月份,则会返回错误

  

运算符'=='不能应用于DateTime和Int。

类型的操作数

如果我只使用句号,它会正常,但显然它不会返回整个月的数据。

我在这里缺少什么?我需要做什么才能将这个附加条件添加到我的数据表查询中?

2 个答案:

答案 0 :(得分:2)

尝试使用(rows.Field<DateTime>("Date Loaded")).Month == period.Month

答案 1 :(得分:1)

您无法直接将日期时间与月份进行比较。使用>>>df.head() col col2 a Yes_PFD_1 0 no_PFD_2 2 no_PFD_3 3 no_PFD_4 5 Yes_PFD_5 与月份进行比较。

rows.Field<DateTime>("Date Loaded").Month