Laden...

SQL insert

Erstellt von TiTime vor 17 Jahren Letzter Beitrag vor 17 Jahren 1.325 Views
T
TiTime Themenstarter:in
68 Beiträge seit 2006
vor 17 Jahren
SQL insert

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!

2.082 Beiträge seit 2005
vor 17 Jahren

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

A
217 Beiträge seit 2006
vor 17 Jahren

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

T
TiTime Themenstarter:in
68 Beiträge seit 2006
vor 17 Jahren

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??

B
13 Beiträge seit 2006
vor 17 Jahren
Sql - Insert

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.