for (DateTime date = fromDate; date <= toDate; date = date.AddDays(1))
{
var bwSalesValue = (from r in dtSalesData.AsEnumerable()
where r.Field<int>("PositionId") == pdPositionId
&& r.Field<DateTime>("SaleDate") == date
select r.Field<int>("SaleValue")).FirstOrDefault();
}
从上面的代码段r.Field<DateTime>("SaleDate") == date
部分引发异常指定演员无效。
日期变量和dtSalesData行具有相同的值3/1/2015 12:00:00 AM
有任何线索吗?
UPDATE ==================================
对不起朋友,我在这里犯了一个愚蠢的错误。问题出在下一行 -
select r.Field<int>("SaleValue")).FirstOrDefault(); //Would be <decimal>
请接受我的道歉。谢谢大家。
答案 0 :(得分:0)
你试过这个吗?
var bwSalesValue = (from r in dtSalesData.AsEnumerable()
where r.Field<int>("PositionId") == pdPositionId
&& Convert.ToDateTime(r.SaleDate) == date
select r.Field<int>("SaleValue")).FirstOrDefault();
答案 1 :(得分:0)
for (DateTime date = fromDate; date <= toDate; date = date.AddDays(1))
{
var bwSalesValue = (from r in dtSalesData.AsEnumerable()
where r.Field<int>("PositionId") == pdPositionId
&& r.Field<DateTime>("SaleDate") == DBNull.Value ? DateTime.MinValue : date);
select r.Field<int>("SaleValue")).FirstOrDefault();
}
当SaleDate返回DBNull.Value
时,也许你不应该使用where子句,因为它无法将DateTime转换为null。