C# 从数据库检索数据时,将DBNull设置为其他类型

C# 从数据库检索数据时,将DBNull设置为其他类型,c#,asp.net-mvc-3,C#,Asp.net Mvc 3,我有一个MVC3应用程序。我调用数据库,在数据集中获取数据并将其存储在类中。下面是我如何存储数据集中的数据 var dt = ds.Tables[0]; var i = 0; foreach (DataRow dr in dt.Rows) { wt = new WorkTasksDto

我有一个MVC3应用程序。我调用数据库,在数据集中获取数据并将其存储在类中。下面是我如何存储数据集中的数据

                var dt = ds.Tables[0];
                var i = 0;
                foreach (DataRow dr in dt.Rows)
                {
                    wt = new WorkTasksDto
                             {
                                 Notes = dr["Notes"].ToString(),
                                 DueDate = Convert.ToDateTime(dr["DueDate"])
                 }
这是我的班级成员:

          [DataMember]
            public DateTime? DueDate
            { get; set; }
从sql server返回的DueDate字段为null,这很好,但当我尝试将其存储在类中的DueDate字段中时,出现以下错误:

 "Object cannot be cast from DBNull to other types"

如何修复此错误?谢谢

看看
DataRow.IsNull

DueDate = dr.IsNull("DueDate")? (DateTime?)null : (DateTime?)dr["DueDate"]

您可以删除冗余强制转换(DateTime?)null,只需写入null:


DueDate=dr.IsNull(“DueDate”)?null:(DateTime?)dr[“DueDate”]

你到底为什么还在使用数据集?
DueDate = dr["DueDate"] == DBNull.Value ? (DateTime?) null : Convert.ToDateTime(dr["DueDate"]);