null从Excel表添加到数据库使用C#的DateTime

我有一个问题,获得一个值传递给这个variables。 它是来自Excel文件(使用Aspose)的null,但是一个DateTime不包括它。 我添加了DateTime? 到variables,但没有帮助。 我已经尝试了一些我知道的方法,但是没有一个方法正在为传入的空值工作。 如果该值为空,则必须保持null,数据库允许为空值。 有人可以帮我把这个工作吗? 有没有更简单的方法来解决这个问题?

试试1

EnterDate = Convert.ToDateTime(dr["EnterDate"]); EnterDate = (EnterDate.HasValue) ? EnterDate : DateTime.Now; 

试试2

 RepealedDate = (dr["RepealedDate"] == null) ? (DateTime?)null : Convert.ToDateTime(dr["RepealedDate"]); 

用你的第二次尝试replace:

 DateTime? repealedDate = (dr["RepealedDate"] == null) ? null : Convert.ToDateTime(dr["RepealedDate"]); 

你不能将null转换为DateTime? 要解决这个问题,你必须把variables定义为DateTime?typesDateTime?

我无法在网上find一个好的解决scheme。 所以我试图自己处理。 我从Excel Sheet以stringforms获取数据,然后控制它是否为空。 如果我把它设置为null否则我将它转换为DateTime,如下所示。 这避免了我在Convert函数中可能发生的exception。

 StartDate = dr[2].ToString().Trim(); if (StartDate != "") r.Data.StartDate = Convert.ToDateTime(StartDate); else r.Data.StartDate = null;