[ASP.NET] SqlDateTime-overloop op correcte datum/tijd?

Pagina: 1
Acties:
  • 698 views sinds 30-01-2008
  • Reageer

  • Sensei_D
  • Registratie: Maart 2002
  • Laatst online: 20-02 09:20
Probleem: Ik doe via ASP.NET een update op mijn database. Hierbij wil ik een datumtijdveld vullen waarbij datum EN tijd beide worden ingevoerd. Zodra ik dit probeer krijg ik een fijne foutmelding:

SqlDateTime-overloop. Moet tussen 1/1/1753 12:00:00 AM en 12/31/9999 11:59:59 PM liggen.

Merkwaardigheden (imho):
- Wanneer ik ALLEEN het datumtijdveld update werkt het wel
- Wanneer ik i.p.v. een update een insert doe op de database werkt het wel

Ik snap er helemaal niets van :?
Owja, uiteraard heb ik eerst hier en op Google gezocht. Hier vond ik niks en op Google waren er wel hits, maar daar ging het vaak om het updaten van een datumtijd-veld waarbij "01/01/0001" in het veld werd geplaats. In mijn geval plaats ik bijvoorbeeld "01/05/2006 19:30:00"

sensei_d.fpv channel


  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 21:56

mulder

ik spuug op het trottoir

Hoe schiet het je naar de db dan? Met een stored procedure?

oogjes open, snaveltjes dicht


Verwijderd

Gewoon syntaxfout lijkt me... Laat eens wat code zien.

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Maak je gebruik van parameterised queries? Plaats anders eens een klein stukje code waar het mis gaat.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


  • Sensei_D
  • Registratie: Maart 2002
  • Laatst online: 20-02 09:20
Don Facundo schreef op maandag 22 mei 2006 @ 12:01:
Hoe schiet het je naar de db dan? Met een stored procedure?
Hmm toch wat vergeten :+
Uhm nee, ik gebruik geen stored procedure. Ik gebruik onderstaande functie welke onderdeel is van een object...

-weg-

[ Voor 99% gewijzigd door Sensei_D op 22-05-2006 13:10 ]

sensei_d.fpv channel


Verwijderd

Denk je nou echt dat wij die 200+ regels door gaan lezen? Anders druk je even de querystring af en kijkt naar het datumveld... Daar gaat dus iets fout.

Bij INSERT gaat het wel goed en UPDATE niet... Daar zit dus wel verschil in.

[ Voor 21% gewijzigd door Verwijderd op 22-05-2006 12:37 ]


  • Sensei_D
  • Registratie: Maart 2002
  • Laatst online: 20-02 09:20
Verwijderd schreef op maandag 22 mei 2006 @ 12:37:
Denk je nou echt dat wij die 200+ regels door gaan lezen? Anders druk je even de querystring af en kijkt naar het datumveld... Daar gaat dus iets fout.

Bij INSERT gaat het wel goed en UPDATE niet... Daar zit dus wel verschil in.
Eerlijk gezegd was dat de reden ook waarom ik in eerste instantie de code niet postte... Ik zal hem wel ff verkleinen.

sensei_d.fpv channel


  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Ook wel belangrijk om te vermelden wat de waarde van je DateTime object is op het moment dat het mis gaat.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


  • H!GHGuY
  • Registratie: December 2002
  • Niet online

H!GHGuY

Try and take over the world...

1 ding staat vast:

je creert een programma dat niet onderhoudbaar is.

normaliseer eerst maar eens je database en splits eventueel zelfs extra op in logische groepen.
Zo begin jij er niet aan en ik al zeker niet!

bovendien bestaan er volwaardige O/R mappers en andere die dit tijdrovend karwei volautomatisch voor jou kunnen.

[ Voor 22% gewijzigd door H!GHGuY op 22-05-2006 12:56 ]

ASSUME makes an ASS out of U and ME


  • Sensei_D
  • Registratie: Maart 2002
  • Laatst online: 20-02 09:20
HIGHGuY schreef op maandag 22 mei 2006 @ 12:55:
1 ding staat vast:

je creert een programma dat niet onderhoudbaar is.

normaliseer eerst maar eens je database en splits eventueel zelfs extra op in logische groepen.
Zo begin jij er niet aan en ik al zeker niet!

bovendien bestaan er volwaardige O/R mappers en andere die dit tijdrovend karwei volautomatisch voor jou kunnen.
Deze tabel vormt als het ware een "bon" in een kassa. Wanneer bijvoorbeeld het adres van de klant wijzigt, zal de bon volledig behouden moeten blijven, omdat de opdracht uitgevoerd is voor de klant met het adres op de moment. Alle onderdelen in deze tabel zijn genormaliseerd, maar er is een kopie nodig van de "bon" om zo een historie bij te kunnen houden en dat is deze tabel. Ik zou niet weten hoe dit anders te doen is, maar dat was verder ook de vraag niet al waardeer ik je input wel.

Die wrappers zal ik eens opzoeken, die ken ik niet...

sensei_d.fpv channel


  • whoami
  • Registratie: December 2000
  • Laatst online: 21:21
Weet ook dat de min. en max. values die een DateTime kunnen bevatten in .NET anders zijn (01/01/0001 tot 31/12/9999 dacht ik), dan de min. en max. values die Sql Server kan bevatten. (by default 1/1/1753 tot 31/12/9999).

Verder kan je ook eens mbhv de Sql Server profiler kijken welke query en welke waardes er exact naar je DB gestuurd worden. Je moet natuurlijk wel eerst een beetje debuggen natuurlijk...

https://fgheysels.github.io/


  • Sensei_D
  • Registratie: Maart 2002
  • Laatst online: 20-02 09:20
Ik heb de volledige Update query opnieuw ingetypt en toen was het weg, dus het is opgelost. Wat het was weet ik niet en wil het eerlijk gezegd ook niet meer weten :+

sensei_d.fpv channel

Pagina: 1