空日期时间从 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"]);
用
这个替换你的第二次尝试:
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;