2010-03-29 102 views
1

在数据库中有一个保存结束日期的字段。只有在案件被关闭的情况下,该日期才可以不为NULL。如果案件未关闭,则必须为空。我如何将空值传递给DateTime对象?如何将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值,而我需要这个字段留空。

有什么建议吗?

回答

1

申报

DateTime ? closure = dateDatumIspisa.SelectedDate; 

在这里没有必要使用?在这一行!

3

只是使closure a DateTime?而不是DateTimeNullable<T>的全部要点是从一个不可为空的类型构造一个可为空的类型。

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

DateTime? closure= dateDatumIspisa.SelectedDate; 

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