J'ai vu beaucoup, beaucoup de versions de cela sur SO, mais aucun d'entre eux ne semble vraiment fonctionner pour mes besoins. Mes données proviennent d'une base de données fournisseur qui autorise la valeur NULL pour les champs DateHeure. D'abord je tire mes données dans un DataTable.Gérer un DateTime DBNull
using (SqlCommand cmd = new SqlCommand(sb.ToString(), conn))
using (SqlDataAdapter da = new SqlDataAdapter(cmd))
{
da.Fill(dt);
}
Je suis un DataTable convertissent une liste <> pour le traitement.
var equipment = from i in dt.AsEnumerable()
select new Equipment()
{
Id = i.Field<string>("ID"),
BeginDate = i.Field<DateTime>("BeginDate"),
EndDate = i.Field<DateTime>("EndDate"),
EstimatedLife = i.Field<double>("EstimatedLife")
}
Alors, comment puis-je vérifier DBNull dans cette instance? J'ai essayé d'écrire une méthode.
public DateTime CheckDBNull(object dateTime)
{
if (dateTime == DBNull.Value)
return DateTime.MinValue;
else
return (DateTime)dateTime;
}
donc sur mon objet d'équipement définissent les 'DateTime' champs DATETIME' –
Si c'est un cas d'affaires valable pour votre L'équipement n'a pas de date de début ou de fin alors oui. Sinon, votre couche db devrait lancer une exception. –
yep - c'est un raccourci pour 'Nullable' –