datetime(SQL-DataType) mit Insert-String belegen?

12/03/2009 - 11:36 von WolfgangH | Report spam
Hallo Leute,
ich baue mir einen Insert-String zusammen.
Wie schreibe ich mein DateTime (c#-Objekt) in den Insert-String einer
SQL-Anweisung, die ein datetime (SQL-DataType) erwartet?

Meine Versuche bisher:
1)
DateTime dt;
...
ins_str+= dt.ToString("yyyyMMdd HH:mm:ss");
verwechselt wohl Monat/Tag je nach BS-Sprache.

2)
dt.ToString("yyyyMMdd HH:mm:ss") verwechselt Monat/Tag je nach BS-Sprache.
ins_str+=dt;
ist nicht zulàssig.

danke schon mal für Tipps
Wolfgang
 

Lesen sie die antworten

#1 Elmar Boye
12/03/2009 - 12:24 | Warnen spam
Hallo Wolfgang,

WolfgangH schrieb:
ich baue mir einen Insert-String zusammen.



Baue nicht, sondern verwende (Sql)Parameter.
Damit hast Du keinerlei Probleme, da sich der Treiber
um die richtige Darstellung kümmert.

Wie schreibe ich mein DateTime (c#-Objekt) in den Insert-String einer
SQL-Anweisung, die ein datetime (SQL-DataType) erwartet?

Meine Versuche bisher:
1)
DateTime dt;

ins_str+= dt.ToString("yyyyMMdd HH:mm:ss");
verwechselt wohl Monat/Tag je nach BS-Sprache.



Falls die nicht woanders herkommen, fehlen die einfachen Anführungsstriche.

Ansonsten wird dabei (beim SQL Server) nichts verwechselt,
zur weiteren Lektüre (wenn es um den SQL Server geht):
<URL:http://www.insidesql.org/beitraege/...ntypen>

Aber die Eingangsvariante ist immer besser, da
besser optimierbar, sicher vor SQL Injection uam.

Und ein
insertCommand.Parameters.Add("@dt", SqlDbType.DateTime).Value = dt;
sollte nicht schwer zu schreiben sein.

Gruß Elmar

Ähnliche fragen