Nullable对象必须具有使用c#error的值datetime

时间:2016-04-18 11:11:51

标签: c# datetime

我在c#datetime面临一个问题,我尝试的不仅仅是时间。不是 提出问题解决方案。所以给我一个解决方案。

var accommodationcategoryList = EmployeeAttendanceCacheMaster.GetAllEmployeeAttendance();
DataSourceResult result = accommodationcategoryList.ToDataSourceResult(request);

foreach(var item in accommodationcategoryList)
{
    item.User = UserCacheMaster.GetUserById(item.employeeid);
    item.loginTime = item.login.Value.ToShortDateString();
    item.logoutTime = (item.logout.Value.ToShortDateString() != null) ? item.logout.Value.ToShortDateString() : "-";
}

我的问题是没有显示显示错误的logouttime

  

可空对象必须具有值

2 个答案:

答案 0 :(得分:4)

您正在尝试检查针对null对象的转换是否为null,而不是检查可空对象本身。您需要更改此行:

item.logoutTime = (item.logout.Value.ToShortDateString() != null) ? item.logout.Value.ToShortDateString() : "-";

item.logoutTime = item.logout.HasValue ? item.logout.Value.ToShortDateString() : "-";

答案 1 :(得分:0)

尝试一下:

if(item.logout.HasValue) {
    item.logoutTime = item.logout.Value;
}