C# Problem bei OleDBCommand ("Insert") mit Parametern

Thaxll'ssillyia

Captain
Dabei seit
Dez. 2007
Beiträge
3.321
Problem bei OleDBCommand ("Insert") mit Variablen

Hi Community!

Ich versuche grad, mich in SQL per C# reinzufinden.

Meine OLeDB-Testdatenbank siehe Anhang.

So klappt das Hinzufügen eines Eintrag super:

OleDbCommand cmd = new OleDbCommand("insert into Tabelle7(Wert) values (20)", Con);
cmd2.ExecuteNonQuery();

Wenn ich jetzt aber eine Variable für 20 einsetzen will:

OleDbCommand cmd = new OleDbCommand("insert into Tabelle7(Wert) values (" + C.Inventarnummer + ")", Con);
(C.Inventarnummer ist vom Typ int)

bekomme ich folgenden Fehler:

Für mindestens einen erforderlichen Parameter wurde kein Wert angegeben.

Das gleiche kommt, wenn ich über einen Oledbparameter gehe:

OleDbCommand cmd = new OleDbCommand("insert into Tabelle7(Wert) values (@Wert)", Con);
OleDbParameter Param = new OleDbParameter("@Wert", C.Inventarnummer);

Was mache ich falsch?

Vielen Dank für Hilfe!

Gruß Thax
 

Anhänge

  • Fehler.png
    Fehler.png
    10,8 KB · Aufrufe: 190
Zuletzt bearbeitet:

lynxx

Lt. Junior Grade
Dabei seit
Feb. 2005
Beiträge
427
Dein Datenbank-Feld ist vom Typ String, DB-Spalte Wert Ändern in INT ..
Alternativ:
Code:
OleDbCommand cmd = new OleDbCommand("insert into Tabelle7(Wert) values (\"" + C.Inventarnummer + "\")", Con);
Müsste auch gehen.
 

Thaxll'ssillyia

Captain
Ersteller dieses Themas
Dabei seit
Dez. 2007
Beiträge
3.321
Naja, ich wollte eigentlich string.
und das Beispiel mit '20' hat er anstandslos eingetragen, der Versuch mit der string-Variable 'C:Inventarnummer' scheiterte.

Okay, das mit den Backslashs klappt komischerweise.
Wie mache ich das ganze aber nun mit OleDbParameters?

Aha, so muss es heißen:

OleDbCommand cmd2 = new OleDbCommand("insert into Tabelle7(Wert) values ( @Wert)", Con);
cmd2.Parameters.Add("@Wert", C.Inventarnummer);

Danke trotzdem an lynxx! :)
 
Zuletzt bearbeitet:

Ähnliche Themen

Antworten
7
Aufrufe
1.557
R
Antworten
5
Aufrufe
1.180
VikingGe
V
Top