可以为空的日期时间例外

时间:2015-08-10 07:24:19

标签: c# sql datetime model-view-controller nullable

在存储库中,我将可空字符串" o.Attribute("PreorderLanchDate")"转换为nullable datetime

以下是代码:

PreorderLanchDate = o.Attribute("PreorderLanchDate") == null ? (DateTime?)null : DateTime.Parse(o.Attribute("PreorderLanchDate").Value), 

在控制器上,launchdate是可空的,没有获取值,因为它显示空值异常。 这是代码:

LaunchDate = (DateTime)product.PreorderLanchDate

3 个答案:

答案 0 :(得分:2)

试试这个。

  //along with the null reference check, Use `String.IsNullOrEmpty` to check o.Attribute("PreorderLanchDate").Valuen
 PreorderLanchDate = o.Attribute("PreorderLanchDate") == null || String.IsNullOrEmpty(o.Attribute("PreorderLanchDate").Value) ? (DateTime?)null : DateTime.Parse(o.Attribute("PreorderLanchDate").Value), 



  //Cast to a nullable DateTime
LaunchDate = (DateTime?)product.PreorderLanchDate

答案 1 :(得分:1)

product.PreorderLaunchDate是可以为空的DateTime,如果它的值为null,您将获得将其转换为正常DateTime的异常。

答案 2 :(得分:0)

您可以使用as运算符在兼容的引用类型或可空类型之间执行某些类型的转换。

var nullableDateTime = product.PreorderLanchDate as DateTime;

if ( nullableDateTime != null )
    LaunchDate = nullableDateTime;