Hallo Community
Kann mir wer verraten, warum bei folgendem Code der parameter IMMER null ist?
MySqlCommand cmd = new MySqlCommand("INSERT INTO test (value) VALUES (@value)", myCon);
cmd.Parameters.Add("@value", MySqlDbType.VarChar).Value = "gugus";
cmd.ExecuteNonQuery();
Es wird wohl wieder ein richtig peinlicher Fehler sein g. Ich mache es genau gleich bei einem SELECT Statement, und dort funktionierts wunderbar.
Die Tabelle sieht so aus:
CREATE TABLE
test
(
id
INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
value
VARCHAR( 50 ) NULL DEFAULT '<null>'
) TYPE = MYISAM ;
Gruss,
.unreal
Ich denke, dass du auf einen gerade erstellten Parameter nicht zugreifen kannst.
Mach es doch so:
MySqlParameter p = new MySqlParameter("@value", MySqlDbType.VarChar);
p.Value = "gugus";
cmd.Parameters.Add(p);
Hi Druid
MySqlCommand cmd = new MySqlCommand("INSERT INTO test (value) VALUES (@value)", myCon);
MySqlParameter p = new MySqlParameter("@value", MySqlDbType.VarChar);
p.Value = "gugus";
cmd.Parameters.Add(p);
cmd.ExecuteNonQuery();
geht auch nicht.
ich kapier das nicht, das ist genau so wie es auch in der doku steht :S. Die Verbindung steht zu 100%! Ohne MySQL Parameter funktionieren die Querys. Überseh ich da etwas?
Gruss,
.unreal
Hallo .unreal,
ich bin mir NIE sicher, welche Parameterzeichen für welche DB funktionieren.
Probier mal anstatt das '@' zu nehmen ein '?' zu nehmen. Sollte das auch nicht funktionieren, dann vergiss meinen Beitrag 😉
Ciao
Norman-Timo
A: “Wie ist denn das Wetter bei euch?”
B: “Caps Lock.”
A: “Hä?”
B: “Na ja, Shift ohne Ende!”
Bei mir hat das auch nie funktioniert. Ich denke mal, das ist vielleicht ein Bug? Ich mach das immer so, daß ich das gesamte DataSet update (mit DataAdapter.Update()). Und das reicht für meine Anwendung.
Gruß Oliver
Hi Unikum
Da bin ich doch mal froh, dass ich nicht der einzige bin, bei dem diese Parameter nicht funktionieren 🙂 Was für eine Version von MySQL verwendest du? Ich verwende gerade Version 5.0.18.
Wenn das wirklich ein Bug ist, ist das doch sehr lazy von den Entwicklern... Die Dokumentation ist leider auch sehr spärlich, welche sie mitliefern 🙁 Die Beispielapplikation verwendet auch "nur" den MyqlCommandBuilder. Erstaunlich ist, dass andere über diese Klassen schreiben, dass der CommandBuilder bei Joins nicht funktioniert, also soll man die Statements von hand machen. Nur ist das ohne Parameter relativ doof 😠
Gruss,
.unreal
Hallo .unreal
Die folgenden Zeilen, habe ich aus der "testsuite" (ParameterTests.cs) des MySQL-Connectors V.1.0.5.
cmd.CommandText = "INSERT INTO Test VALUES (1, 'test', ?dt, ?time, NULL)";
cmd.Parameters.Add( new MySqlParameter("?time", time));
cmd.Parameters.Add( new MySqlParameter("?dt", dt));
Mangels verfügbaren MySQL Server konnte ich die Sache nicht testen, aber vielleicht hilft es ja.
2b | !2b = 0xff
Hi HoGi
Super, danke HoGi, so funktionierts!
@norman_timo:
sooooooooooory, du hattest recht g und ich wollte nicht mal hinhören 😠
Gruss,
.unreal
Hallo .unreal,
da gibts wohl Schlimmeres, freut mich aber das es funktioniert 😁
Ciao
Norman-Timo
A: “Wie ist denn das Wetter bei euch?”
B: “Caps Lock.”
A: “Hä?”
B: “Na ja, Shift ohne Ende!”