La conversion d'un type de données datetime2 en un type de données datetime donne une valeur hors limites

c# datetime entity-framework orm sql-server

Question

J'ai un datatable avec 5 colonnes, où une ligne est remplie avec des données alors enregistrées dans la base de données via une transaction.

Lors de la sauvegarde, une erreur est renvoyée:

La conversion d'un type de données datetime2 en un type de données datetime a entraîné une valeur hors limites.

Cela implique, comme lu, que mon datatable a un type de DateTime2 et ma base de données un DateTime ; C'est faux.

La colonne de date est définie sur un DateTime comme ceci:

new DataColumn("myDate", Type.GetType("System.DateTime"))

Question

Cela peut-il être résolu en code ou faut-il modifier quelque chose au niveau de la base de données?

Réponse acceptée

Quel genre de dates avez-vous dans la colonne?

Est-ce que tous correspondent à la gamme du type?


En passant, la méthode correcte pour obtenir un objet Type pour le constructeur DataColumn est le mot clé typeof , qui typeof ordres de grandeur.

Par conséquent, pour créer la colonne, vous devez écrire

new DataColumn("myDate", typeof(DateTime))

Réponse populaire

Cela peut se produire si vous n'attribuez pas de valeur à un champ DateTime lorsque celui-ci n'accepte pas les valeurs NULL .

Cela l'a corrigé pour moi!



Related

Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow