SqlDateTime-överflöd. Måste vara mellan 1/1/1/1753 00:00 och 999999:12-31
När data infogades med NHibernate-ormramverket rapporterades ovanstående fel:
SqlDateTime överflöd / SqlDateTime-överflöd [Sammanfattning: Fel - SqlDateTime överflöd. Måste vara mellan 1/1/1/1753 00:00:00 och 31/12/9999 23:59:59 SqlDateTime-överflöd. Måste vara mellan 1/1/1/1753 00:00:00 Krig 31/12/9999 23:59:59 Anledning När C# infogar eller uppdatera databas, datum-tid ord
Fel - SqlDateTime överflöd. Måste vara mellan 1/1/1/1753 00:00:00 och 99999:12-31 23:59:59 SqlDateTime-överflöd. Måste vara mellan 1/1/1/1753 00:00:00 och 99999:12-31 23:59:59
Orsak
När man använder C# insert eller update database är datetime-fältvärdet som standard null. Insättning C# 0001-01-01-01 orsakar överflöd av SQL-server datetime-typ.
DatumTidstypintervall i C#
DateTime.MinValue = 1/1/0001 00:00:00 AM DateTime.MaxValue = 23:59:59.99999999, 31 december 9999, exakt ett 100-nanosekunds tick före 00:00:00, 1 januari 10000 Datetime-typintervall i SQL Server
mellan 1/1/1753 00:00:00 och 99999 31/12 23:59:59
Efter att ha läst den här artikeln förstår jag nog något, det borde finnas en egenskap som är tom, NHibernate sätter automatiskt standardvärdet, jag tror det borde vara så här????
Sedan, efter att ha tilldelat attributet UpdateTime som inte var ursprungligen,fann att det inte fanns något fel, och sedan infogade datatabellen,
Men mitt fält kan vara tomt, vad ska jag göra???
Hitta egenskapen UpdateTime under klassen DateTime och ställ in den till DateTime? Det vill säga, tillåt tomhet. (I den mappade xml är bäst, även sätts till not-null="false", enligt följande:)
Äntligen, framgång, ta en skärmdump av databasen!
|