Denne artikkelen er en speilartikkel om maskinoversettelse, vennligst klikk her for å hoppe til originalartikkelen.

Utsikt: 22966|Svare: 1

[Kilde] spring.net nhibernate sqldatetime overflow solution

[Kopier lenke]
Publisert på 13.09.2017 14:34:58 | | | |
SqlDateTime overflow. Må være mellom 1.1.1.1753 00:00:00 og 31.12.999 23:59:59




Da jeg utførte oppdateringsoperasjonen fra nettsiden, fikk jeg stadig en feil, og jeg trodde det var XML-konfigurasjonen eller at noe hadde gått galt da SQL-setningen ble kjørt

Jeg prøvde å bruke SQL Query Analyzer for å hente de genererte SQL-setningene, og fant ut hva er problemet med korrekt utførelse? SQL-setningen er som følger:

exec sp_executesql N'INSERT INTO DBO. LeanLogs (Version, OrganizationId, CustomInfoId, LastLeanAlarmType, NowLeanAlarmType, InsertTime, TreatedTime) VALUES (@p0, @p1, @p2, @p3, @p4, @p5, @p6); select SCOPE_IDENTITY()',N'@p0 int,@p1 int,@p2 int,@p3 int,@p4 int,@p5 datetime,@p6 datetime',@p0=1,@p1=35,@p2=12,@p3=10,@p4=10,@p5='2017-09-13 13:09:41',@p6=NULL
SqlDateTime overflow. En resolusjon må --- mellom 01.01.1753 00:00:00 og 31.12.9999 23:59:59

Feilårsak

    Hvis verdien av tidstypen som sendes til databasen er NULL, eller når databasen settes inn eller oppdateres for DateTime.MinValue, er datetime-feltverdien null som standard.
    NULL refererer her til null i programkoden, og de fleste scenarioene hvor dette skjer er: en tidstypevariabel defineres i programmet, og den sendes til databasen (eller lagret prosedyre) uten å tildele en verdi. På dette tidspunktet tildeles verdien til denne variabelen 01/01/01 som standard.
     Siden DateTime-typefeltet i databasen, er minimumsverdien 1/1/1753 12:00:00, mens . NET Framework, DateTime-typen, minimumsverdien er 1/1/0001 0:00:00, åpenbart utenfor minimumsverdiområdet til SQL-verdien, noe som resulterer i en dataoverløpsfeil.
    La oss se på hvordan du kan se .net og sql maks min tid gjennom C#:


Utgangseffekt:



Til slutt ble det tuklet med i mer enn ti minutter,

De siste feilårsakene er som følger:

En av attributttypene til objektet er også et objekt, det vil si at tabellen har en fremmednøkkel, og et nytt datetime-attributt legges til fremmednøkkeltabellen, som ikke er tildelt en verdi og ikke er satt til nullbar type

Når man legger til eller oppdaterer et objekt, knyttes datotidspunktet til fremmednøkkelobjektet automatisk til standardverdien, fordi tidspunktet for .net-standardverdien er mindre enn standard minimumstid i databasen

Løsning: Sett egenskapen til en datetime-type for fremmednøkkelobjektet til null type, hjelp kolleger å løse det perfekt!







Foregående:.net/c# Operasjon Redis cache-tilførsel, sletting, modifisering og spørring [kildekode]
Neste:asp.net Feilanalyse av nettstedsavvik
Ansvarsfraskrivelse:
All programvare, programmeringsmateriell eller artikler publisert av Code Farmer Network er kun for lærings- og forskningsformål; Innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal brukerne bære alle konsekvenser. Informasjonen på dette nettstedet kommer fra Internett, og opphavsrettstvister har ingenting med dette nettstedet å gjøre. Du må fullstendig slette innholdet ovenfor fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt ekte programvare, kjøp registrering, og få bedre ekte tjenester. Hvis det foreligger noen krenkelse, vennligst kontakt oss på e-post.

Mail To:help@itsvse.com