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

时间:2014-10-22 14:19:21

标签: c# sql .net sql-server-2008-r2

这是我的代码

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

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

我遇到了这个例外:

  

无法将DBNull.Value强制转换为&#39; System.DateTime&#39;。请用一个   可空类型。

你能帮忙吗?

1 个答案:

答案 0 :(得分:11)

DataRow.Field支持可空类型,因此请使用DateTime?代替DateTime

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