在申请LINQ的某个日期之间没有获得记录?

时间:2012-12-03 08:05:47

标签: c# asp.net linq

  bindToGridCollection = transactionRecsCollection.
               Where(tran =>  tran.GlhDate >= durationFrom && 
                                      tran.GlhDate <= durationTo).ToList();

我只获得2条记录,而我提供的日期之间应该有7条记录

在transactionRecsCollection中,我获得了所有记录

3 个答案:

答案 0 :(得分:0)

我相信这是你在这里使用的DateTime结构,所以不要忘记它的时间部分。 尝试以下操作,看看会发生什么。

bindToGridCollection = transactionRecsCollection.Where(tran =>  tran.GlhDate >= durationFrom && tran.GlhDate < durationTo.AddDays(1)).ToList();

答案 1 :(得分:0)

我能想到为什么你只得到两条而不是7条记录的唯一原因是GlhDate是一个带有时间部分的DateTime变量,你想要包含给定日期的所有记录

然后您可以使用DateTime.Date,无需时间即可返回日期组件:

bindToGridCollection = transactionRecsCollection
    .Where(tran =>  tran.GlhDate.Date >= durationFrom.Date  
                 && tran.GlhDate.Date <= durationTo.Date)
    .ToList();

答案 2 :(得分:0)

在您给出的示例中,问题可能是以下之一:

  1. tran.GlhDate和durationFrom可能不是相同的日期格式。
  2. durationFrom可以是string类型而不是Datetime。
  3. tran.GlhDate可以是字符串类型而不是Datetime。