无法将DBNull.Value强制转换为“System.DateTime”。 请使用可空类型

这是我的代码

var finalResults = (from r in results.AsEnumerable() where r.Field("PrintTime") is DBNull 

其中PrintTime是我的Sql Server 2008 r2数据库中的一列,其类型是datetime并且可以为

我有这个例外:

无法将DBNull.Value强制转换为“System.DateTime”。 请使用可空类型。

你能帮帮忙吗?

DataRow.Field支持可空类型,所以使用DateTime? 而不是DateTime

 var finalResults = from r in results.AsEnumerable() let printTime = r.Field("PrintTime") where !printTime.HasValue select r;