Som du har sagt, datatypen u.LastLogon
är DateTime?
. Det betyder att det kan ha ett värde eller inte. Genom att casta till DateTime
, du kräver att den har ett värde. I det här fallet gör det inte det.
Beroende på vad du försöker göra med det, kanske du vill kontrollera HasValue
egenskap:
userRow["LastLogon"] = u.LastLogin.HasValue ?
(object) u.LastLogin.ToShortDateString() : DBNull.Value;
Om din databas LastLogon
kolumnen är av typen DateTime, då bör du kunna göra:
userRow["LastLogon"] = u.LastLogin.HasValue ?
(object) u.LastLogin.Value : DBNull.Value;