在C#中是否存在空日期

时间:2011-12-20 19:07:01

标签: oracle variables c#-4.0 nullable

我正在尝试在Oracle数据库中输入日期。有时这个值将为null。所以在我写的函数中,我需要一种方法来传递这个null值。我在这个日期作为存储过程的参数传递。此参数可以为null。我正在使用Oracle.DataAccess dll来使这个东西工作。如果它确实为null,我想只是抛出一个null变量。你觉得那会有用吗???以下是我目前正在设置此方案的方法......

cmd.Parameters.Add("ACTIVE_DATEIn", DateTime.Parse(ActiveDate));
conn.Open();
outcome = cmd.ExecuteNonQuery();

活动日期是我要传入的可能的空变量。显然,您无法将空值转换为日期时间。你们会建议做什么?

4 个答案:

答案 0 :(得分:8)

由于DateTimestruct,因此不能包含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