2

我正在使用 Linq to SQL 来获取一些数据,这样我就可以在日历控件上突出显示根据记录添加到数据库的日期存在记录的日期。

我的数据库(日期戳)中有一个数据类型为日期的字段。

我声明一个 IEnumerable 来实现这一点,如下所示:

Private unapprovedFireDays As IEnumerable(Of DateTime) = Nothing

我在 page_prerender 事件中获取数据的代码如下所示:

If calFire.VisibleDate.Year <> 1 Then
        baseDate = calFire.VisibleDate
    Else
        baseDate = DateTime.Now
    End If

    startDate = New DateTime(baseDate.Year, baseDate.Month, 1)
    endDate = startDate.AddMonths(1).AddDays(-1)


    Dim fdc As New FireAlarmDataContext()


    unapprovedFireDays = (From f In fdc.FireAlarms _
                          Where f.DateStamp <= endDate And _
                          f.DateStamp >= startDate And _
                          f.SupervisorChecked = "0" _
                          Order By f.DateStamp _
                          Select New DateTime(f.DateStamp.year, _
                                              f.DateStamp.month, _
                                              f.DateStamp.day) Distinct).ToArray()

出于某种原因,我在代码的 f.datesamp.year、f.datesamp.month 和 f.datesamp.day 项下出现了蓝线。如果我将鼠标悬停在它上面,它会说“年份”不是“日期”的成员?

我使用该表中名为 datestamp 的数据类型 date 的字段与另一个表一起使用几乎相同的代码,并且工作正常。

我不确定为什么它认为 year 应该是 Date 的成员?而不是日期。我错过了什么明显的东西吗?

4

1 回答 1

3

我怀疑问题很简单。

“年份”不是“日期”的成员?(可空类型),它是“日期”的成员。

我想知道如果用 'f.DateStamp.Value.Year' 而不是 'f.DateStamp.year' 会解决问题吗?

于 2013-07-18T11:41:51.390 回答