2

我在获取要传递给此变量的值时遇到问题。它来自 excel 文件(使用 Aspose)为空,但 DateTime 不例外。我添加了DateTime ?到变量,但这无济于事。我尝试了几种我知道的方法,但它们都不适用于传入的 null 值。如果该值为空,它必须保持空值,数据库允许空值。有人可以帮我解决这个问题吗?有没有更简单的方法来解决这个问题?

试试 1

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

试试 2

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

2 回答 2

1

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

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

您不能强制转换 null 来DateTime?解决问题,您必须将变量定义为 type DateTime?

于 2013-10-24T14:15:58.723 回答
0

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

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

if (StartDate != "")
   r.Data.StartDate = Convert.ToDateTime(StartDate);
else
   r.Data.StartDate = null;
于 2015-03-10T13:18:51.480 回答