空日期时间从 excel 工作表使用 C# 添加到数据库

本文关键字:添加 数据库 时间 日期 excel 工作 | 更新日期: 2023-09-27 18:36:40

我在获取要传递到此变量中的值时遇到问题。它来自 excel 文件(使用 Aspose)为 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"]);

空日期时间从 excel 工作表使用 C# 添加到数据库

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

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

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

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

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