Hallo
Entweder ich stehe voll auf der Leitung ode rich weiß nicht warum, aber
wie schaut ein INSERT - Statement aus wo ich dezimalwerte einspiele.
User trägt dezimalwert in ein Datagridview ein und ich nehm diesen wert um sie in einer Spalte einer Tabelle zu speichern
Natürlich bekomm ich Exceptions wenn das Statement folgendermaßen aussieht:
INSERT INTO blabla VALUES(wert1, wert2, wert3, wert4)
// wert 3 und wert4 sind jetzt Dezimalzahlen, also z.B. 4,35
Eception fliegt weil da dann steht zuviele Values
INSERT INTO blabla VALUES(id1, name1, 4,35 , 3,65)
So nun hab ich schon folgende Sachen probiert:
INSERT INTO blabla VALUES(id1, name1, 4.35 , 3.65)
INSERT INTO blabla VALUES(id1, name1, (4,35) , (3,65))
INSERT INTO blabla VALUES(id1, name1, '4,35' , '3,65')
INSERT INTO blabla VALUES(id1, name1, '4.35' , '3.65')
Funktioniert alles nicht!
Meines wissen nach müsste die Erste probevariante stimmen. Also entweder stehe ich auf der leitung oder keine ahnung.
Und wenn das erste Stimmt wie wandle ich das dann so um mit stringcasten und replace von , mit .?
Bitte um Hilfe!
Hallo TiTime,
so wie du das im Moment vorhast ist das ganz schlecht und man macht SqlAktionen nichtmehr in dem Schema. Verwende Lieber mal SqlCommand und setze da mittels .Parameters die einzelnen Parameter.
So kannst du nämlich bei jedem Parameter den Datentyp mit angeben und brauchst dir so keine Sorgen mehr machen.
Es ist toll jemand zu sein, der nichts von der persönlichen Meinung Anderer hält. - frisch-live.de
Original von frisch
So kannst du nämlich bei jedem Parameter den Datentyp mit angeben und brauchst dir so keine Sorgen mehr machen.
...und verhinderst (insofern du Benutzereingaben übergibst) auch SQL-Injection-Angriffe. 😉
Gruß,
Atze
Danke für die Antworten!
Das War eh nur die Exception auswertung. Und ich hab halt beim debuggen die Werte den versuchen nach geändert um weiterzukommen. Ging aber nicht.
hmm SqlCommand mit Parametrisierung bei typangabe ich kanns mal probieren auf diesem Wege probieren, aber das ist so eine sache. Weil ich die Datenbank über eine selbst geschrieben klasse anspreche. und die Methoden nehmen meist SQL strings.
Grund für diese Wahl ist weil die Select meist etwas komplexer sind und kein DataAdapter und kein Dataset dafür existiert bzw. existieren kann.
Ich weiß das gerade für ein komplexeres Select die Parametrisierung sich eignet aber nicht wenn sich dadurch die Where Bedingung ändert, soll heißen mehr oder auch weniger Bedingungen erfüllen muss.
Aber danke für den vroschlag, Ich werd es mir durch den kopf gehen lassen.
Gibt es sonst andere Alternativen??
Hi,
dein Insert-Befehl ist mir nicht geläufig. Ich mache das immer folgendermassen:
INSERT INTO Tabelle (Spalte1, Spalte2, etc) VALUES (wert1, wert2, etc);
Dein Weg, die Spaltennamen in die Values einzutragen ist mir völlig unbekannt. Auch mein schlaues Buch "Datenbankprogrammierung mit Visual C# 2005" beschreiben die INSERT's immer so wie ich es als Beispiel oben anführte.
Probiers mal auf diesem Weg.
Viel Glück und Servus.