Seperti yang Anda katakan, tipe data u.LastLogon itu DateTime? . Ini berarti bahwa itu mungkin atau mungkin tidak memiliki nilai. Dengan mentransmisi ke DateTime , Anda membutuhkannya untuk memiliki nilai. Dalam hal ini, tidak.
Bergantung pada apa yang Anda coba lakukan dengannya, Anda mungkin ingin memeriksa HasValue properti:
userRow["LastLogon"] = u.LastLogin.HasValue ?
(object) u.LastLogin.ToShortDateString() : DBNull.Value;
Jika basis data Anda LastLogon kolom adalah tipe DateTime, maka Anda harus dapat melakukan:
userRow["LastLogon"] = u.LastLogin.HasValue ?
(object) u.LastLogin.Value : DBNull.Value;