.net 数据集中的LINQ空日期比较

.net 数据集中的LINQ空日期比较,.net,vb.net,linq,.net,Vb.net,Linq,我有一个数据集,其中我需要过滤其中一个日期列不为空的集合 你用LINQ怎么称呼这个 这就是我目前所知道的,但是在Where子句中的w.CompletedDate字段上有一个编译器错误 Dim completed = From ins In InspectionDataset.Inspection.AsEnumerable _ Where (Function(w) w.CompletedDate IsNot Nothing) _ Order By ins.Field(Of Date

我有一个
数据集
,其中我需要过滤其中一个日期列不为空的集合

你用LINQ怎么称呼这个

这就是我目前所知道的,但是在
Where
子句中的
w.CompletedDate
字段上有一个编译器错误

Dim completed = From ins In InspectionDataset.Inspection.AsEnumerable _
    Where (Function(w) w.CompletedDate IsNot Nothing) _
    Order By ins.Field(Of DateTime)("UpdatedDate")
我也尝试了下面的方法,但是编译器不允许进行
DBNull
比较

Dim completed = From ins In Inspection.AsEnumerable _
    Where ins.Field(Of DateTime)("CompletedDate") <> DBNull.Value _
    Order By ins.Field(Of DateTime)("UpdatedDate")
Dim completed=检查中的ins。可计算_
其中ins.字段(日期时间)(“CompletedDate”)DBNull.Value_
按ins.字段排序(日期时间)(“更新日期”)
上的不会返回数据库中的空值(这是使用ADO.NET时所期望的),而是检查该值,如果该值为空,则不返回任何内容

也就是说,您的查询应该是:

Dim completed = From ins In Inspection.AsEnumerable _
    Where Not (ins.Field(Of Nullable(Of DateTime))("CompletedDate") Is Nothing) _
    Order By ins.Field(Of DateTime)("UpdatedDate")