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

Thaxll'ssillyia

Captain
Registriert
Dez. 2007
Beiträge
3.501
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: 201
Zuletzt bearbeitet:
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.
 
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:
Zurück
Oben