Laden...

[erledigt] Ausnahme bei SqlCmd mit Parameters und Datumswert

Erstellt von telfa vor 11 Jahren Letzter Beitrag vor 11 Jahren 1.883 Views
t
telfa Themenstarter:in
156 Beiträge seit 2012
vor 11 Jahren
[erledigt] Ausnahme bei SqlCmd mit Parameters und Datumswert

SQL-Server 2008

Hallo Community,

in einer Anwendung verwende ich (wie so oft) für Operationen auf dem SQLServer SqlCmd-Objekte, die das jeweilige SqlStatement und die erforderlichen Parameter enthält.

In dem folgende Fall werden Datumswerte aus einer Textbox (also als string) an das SqlCmd per Parameter übergeben. In der Textbox befand sich ein gültiges datem (31.08.2012). Dennoch wurde das Sql fehlerhaft beendet mit der Meldung:
The conversion of a nvarchar data type to a datetime datatype resulted in an out-of-range value.

Hat jemand dazu Erfahrungen gemacht?

Vielen Dank und Gruß,
Karl

5.657 Beiträge seit 2006
vor 11 Jahren

Hi telfa,

sicherlich wird der SQL-Server mit dem deutschen Datumsformat nicht zurechtkommen. Warum wandelst du den String nicht in C# direkt in ein DateTime um? Siehe dazu die DateTime.TryParse-Methode, bei der du einen FormatProvider für das deutsche Format übergeben kannst.

Christian

Weeks of programming can save you hours of planning

t
telfa Themenstarter:in
156 Beiträge seit 2012
vor 11 Jahren

Hi MrSparkle,

Dein Hinweis auf auf das deutsche Datumsformat war der Schlüssel. Dumm das ich das nicht beachtet habe.
Beim SQLServer kann man sich da ziemlich einfach behelfen. Mit einem führenden 'set langauge german ' im SQLStatement kann der SQLServer auf deutsches Datumsformat für das Statement geschaltet werden.

Dann klappt's auch mit dem deutschen Datum...

Vielen Dank und Gruß,
Karl

F
10.010 Beiträge seit 2004
vor 11 Jahren

Nur ist das der komplett falsche Weg.
Tu dir einen gefallen und mach es richtig und benutze nicht solche Frickellösungen.

Übergebe dem Parameter einen Datetime den Du geparsed hast.
Und vorsorglich, damit wir auch über die selben Parameter reden:
[Artikelserie] SQL: Parameter von Befehlen