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;