我正在尝试在Oracle数据库中输入日期。有时这个值将为null。所以在我写的函数中,我需要一种方法来传递这个null值。我在这个日期作为存储过程的参数传递。此参数可以为null。我正在使用Oracle.DataAccess dll来使这个东西工作。如果它确实为null,我想只是抛出一个null变量。你觉得那会有用吗???以下是我目前正在设置此方案的方法......
cmd.Parameters.Add("ACTIVE_DATEIn", DateTime.Parse(ActiveDate));
conn.Open();
outcome = cmd.ExecuteNonQuery();
活动日期是我要传入的可能的空变量。显然,您无法将空值转换为日期时间。你们会建议做什么?
答案 0 :(得分:8)
由于DateTime
是struct
,因此不能包含null
值。
有些人使用DateTime.MinValue
来存储空值。更好的方法可能是ActiveDate
改为DateTime?
。
<强>更新强>
您还可以尝试以下方式:
cmd.Parameters.Add("ACTIVE_DATEIn", (ActiveDate == null ? OracleDate.Null : OracleDate.Parse(ActiveDate)));
答案 1 :(得分:3)
您可以通过在类型后面放置DateTime
来使?
实现可用。
DateTime? date;
当然等于
Nullable<DateTime> date;
答案 2 :(得分:1)
您可以使用DateTime.MinValue
而不是null,或使您的DateTime对象可以为空。
答案 3 :(得分:1)
如果您的DBNull.Value
代表null,则可能需要使用ActiveDate
。