null使用C#将Excel工作表添加到数据库的DateTime

时间:2013-10-24 14:01:36

标签: c# excel datetime

我在获取传递给此变量的值时遇到问题。它来自excel文件(使用Aspose)为null,但DateTime不包括它。我将 DateTime?添加到变量中,但这没有帮助。我已经尝试了一些我知道的方法,但它们都没有为传入的null值工作。如果值为null,则它必须保持为null,数据库允许为null值。有人可以帮助我让这个工作吗?有没有更简单的方法来解决这个问题?

尝试1

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

尝试2

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

2 个答案:

答案 0 :(得分:1)

用这个替换你的第二次尝试:

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

您无法将null转换为DateTime?来解决问题,您必须将变量定义为类型DateTime?

答案 1 :(得分:0)

我无法在网上找到一个好的解决方案。所以我试着自己处理它。 我从Excel Sheet获取数据作为字符串然后我控制它是否为空。如果我将其设置为null,我将其转换为DateTime,如下所示。这可以避免我在Convert函数中发生异常。

StartDate = dr[2].ToString().Trim();

if (StartDate != "")
   r.Data.StartDate = Convert.ToDateTime(StartDate);
else
   r.Data.StartDate = null;