Như bạn đã nói, kiểu dữ liệu của u.LastLogon
là DateTime?
. Điều này có nghĩa là nó có thể có hoặc không có giá trị. Bằng cách truyền tới DateTime
, bạn đang yêu cầu nó phải có một giá trị. Trong trường hợp này, nó không.
Tùy thuộc vào những gì bạn đang cố gắng thực hiện với nó, bạn có thể muốn kiểm tra HasValue
tài sản:
userRow["LastLogon"] = u.LastLogin.HasValue ?
(object) u.LastLogin.ToShortDateString() : DBNull.Value;
Nếu cơ sở dữ liệu của bạn LastLogon
thuộc loại DateTime, thì bạn có thể thực hiện:
userRow["LastLogon"] = u.LastLogin.HasValue ?
(object) u.LastLogin.Value : DBNull.Value;