如何将null作为DateTime值传递?

时间:2010-03-29 08:33:12

标签: datetime null

在数据库中,有一个字段可以保存关闭日期。仅当案例已关闭时,此日期才可以为NOT NULL。如果案例未关闭,则必须为NULL。如何将null值传递给DateTime对象?

试过这个,但它不起作用。

DateTime closure= dateDatumIspisa.SelectedDate ?? null;
DateTime closure= dateDatumIspisa.SelectedDate ?? DateTime.Parse("");
DateTime closure= dateDatumIspisa.SelectedDate ?? DBNull.Value;
DateTime closure= dateDatumIspisa.SelectedDate ?? DateTime.Parse(DBNull.Value.ToString());

还尝试了GetValueOrDefault(),但它插入了DateTime.Min值,而我需要将此字段留空。

有什么建议吗?

2 个答案:

答案 0 :(得分:3)

只需将closure设为DateTime?而不是DateTimeNullable<T>的重点是从不可为空的类型中创建可以为空的类型。

现在,您尚未显示SelectedDate的类型 - 但如果它已经是DateTime?,那么您根本不需要使用??。只是:

DateTime? closure= dateDatumIspisa.SelectedDate;

您对可空值类型的熟悉程度如何?您可能想要阅读MSDN coverage of them

答案 1 :(得分:1)

声明

DateTime ? closure = dateDatumIspisa.SelectedDate;

这里不需要使用??