我有DataSet
我需要过滤其中一个日期列不为空的集合。
你如何在LINQ中使用这个术语?
这是我目前所做的,但w.CompletedDate
子句中的Where
字段存在编译器错误。
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")
答案 0 :(得分:2)
Field
extension method上的DataRowExtensions
class不会返回DBNull.Value
数据库中的空值(这是您期望使用ADO.NET),而是检查该值,如果为null,则返回Nothing。
那就是说,你的查询应该是:
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")