/ / null DateTime de la feuille Excel s'ajoutant à la base de données à l'aide de C # - c #, excel, date / heure

DateTime null de la feuille Excel s'ajoutant à la base de données à l'aide de C # - c #, excel, date / heure

J'ai du mal à faire passer une valeur dans cette variable. Il est null venant du fichier Excel (utilisant Aspose) mais un DateTime ne le fait pas. J'ai ajouté le DateTime? à la variable, mais cela ne aide pas. J'ai essayé plusieurs méthodes que je connais mais aucune d'entre elles ne fonctionne pour la valeur null entrante. Si la valeur est null, elle doit rester nulle, ce que la base de données autorise pour une valeur nulle. Quelqu'un peut-il m'aider à faire en sorte que cela fonctionne? Y a-t-il un moyen plus facile de s'y prendre?

Essayer 1

EnterDate = Convert.ToDateTime(dr["EnterDate"]);
EnterDate = (EnterDate.HasValue) ? EnterDate : DateTime.Now;

Essayez 2

RepealedDate = (dr["RepealedDate"] == null) ? (DateTime?)null : Convert.ToDateTime(dr["RepealedDate"]);

Réponses:

1 pour la réponse № 1

Remplacez votre deuxième essai par ceci:

DateTime? repealedDate = (dr["RepealedDate"] == null) ?
null : Convert.ToDateTime(dr["RepealedDate"]);

Vous ne pouvez pas utiliser null pour DateTime? pour résoudre le problème, vous devez définir la variable comme étant de type DateTime?.


0 pour la réponse № 2

Je ne pouvais pas trouver une bonne solution sur le Web. J'ai donc essayé de la gérer moi-même. J'ai pris les données sous forme de chaîne de Excel Sheet et puis j'ai contrôlé si c'est vide ou pas. Si sa je l'ai mis à null sinon je l'ai converti en DateTime comme ci-dessous. Cela m'évite une exception qui peut arriver dans Convert fonction.

StartDate = dr[2].ToString().Trim();

if (StartDate != "")
r.Data.StartDate = Convert.ToDateTime(StartDate);
else
r.Data.StartDate = null;