Como você disse, o tipo de dados de
u.LastLogon
é DateTime?
. Isso significa que pode ou não ter um valor. Ao transmitir para DateTime
, você está exigindo que ele tenha um valor. Neste caso, não. Dependendo do que você está tentando fazer com ele, você pode querer verificar o
HasValue
propriedade:userRow["LastLogon"] = u.LastLogin.HasValue ?
(object) u.LastLogin.ToShortDateString() : DBNull.Value;
Se seu banco de dados
LastLogon
coluna é do tipo DateTime, então você deve ser capaz de fazer:userRow["LastLogon"] = u.LastLogin.HasValue ?
(object) u.LastLogin.Value : DBNull.Value;