SqlDateTime pretečenie. Musí to byť medzi 1.1.1753 00:00:00 a 31.12.9999 11
Pri vkladaní dát do rámca NHibernate orm bola nahlásená vyššie uvedená chyba:
SqlDateTime overflow / SqlDateTime overflow [Zhrnutie: Chyba - pretečenie SqlDateTime. Musí to byť medzi 1.1.1753 o 00:00 a 31.12.9999 o 23:59:59 SqlDateTime pretečení. Musí byť medzi 1.1.1753 a 00:00:00 Vojna 31.12.9999 23:59:59 Dôvod Pri aplikácii C# vložiť alebo aktualizovať databázu, dátum a čas slovo]
Chyba - pretečenie SqlDateTime. Musí to byť medzi 1.1.1753 00:00:00 a 31.12.9999 o 23:59:59 SqlDateTime pretečenie. Musí to byť medzi 1.1.1753 00:00:00 a 31.12.9999 o 23:59:59
Príčina
Pri použití C# vložiť alebo aktualizovať databázu je hodnota poľa datetime predvolene null. Vloženie C# 0001-01-01 spôsobuje pretečenie typu datetime v SQL serveri.
Rozsah typov DateTime v C#
DateTime.MinValue = 1.1.0001 00:00 AM DateTime.MaxValue = 23:59:59.99999999, 31. december 9999, presne jeden 100-nanosekundový tik pred 00:00:00, 1. januára 10000 Rozsah typov dátumového času v SQL Serveri
medzi 1.1.1753 o 00:00:00 a 31.12.9999 o 23:59:59
Po prečítaní tohto článku som asi niečo pochopil, mala by existovať vlastnosť, ktorá je prázdna, NHibernate automaticky nastaví predvolenú hodnotu, myslím, že by to malo byť takto????
Potom, po priradení atribútu UpdateTime, ktorý pôvodne nebol priradený,zistil, že chyba nebola, a potom vložil dátovú tabuľku,
Avšak moje pole môže byť prázdne, čo by som mal robiť???
Nájdite vlastnosť UpdateTime pod triedou DateTime a nastavte ju na DateTime? To znamená, umožniť prázdnotu. (V mapovanom XML je najlepšie, tiež nastavené na not-null="false", nasledovne:)
Nakoniec, úspech, urobte snímku obrazovky databázy!
|