Forums Neueste Beiträge
 

Problem mit mySQL Server vb.net und Parameterobjekten

23/08/2008 - 16:42 von Thomas Hübner | Report spam
Hi All,

ich habe mir auf meinem Eisfair einen mySQL Server aufgesetzt und den
neuesten Treiber auf dem Rechner installiert. Verbindung steht.
Datenbank Test mit Tabelle data:

Struktur Export zeigt folgendes:

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";




CREATE TABLE `data` (
ID int(11) NOT NULL auto_increment,
text1 varchar(255) collate latin1_german1_ci default NULL,
text2 varchar(255) collate latin1_german1_ci default NULL,
text3 varchar(255) collate latin1_german1_ci default NULL,
text4 varchar(255) collate latin1_german1_ci default NULL,
PRIMARY KEY (ID)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german1_ci;


Namespaces sind importiert:
Imports MySql.Data.MySqlClient
Imports MySql.Data.Types


Zum Problem:

Folgendes funktioniert:
Dim myCom As New MySqlCommand("INSERT INTO data
(text1,text2,text3,text4) Values ('Hallo','Hallo','Hallo','Hallo')", mConn)
myCom .ExecuteNonQuery()

Was jetzt kommt legt mir nur jeweils einen leeren Datensatz in die Tabelle:

With myCom
.Parameters.Add(New MySqlParameter("@1", MySqlDbType.VarChar)).Value
= "Hallo"
.Parameters.Add(New MySqlParameter("@2", MySqlDbType.VarChar)).Value
= "Hallo"
.Parameters.Add(New MySqlParameter("@3", MySqlDbType.VarChar)).Value
= "Hallo"
.Parameters.Add(New MySqlParameter("@4", MySqlDbType.VarChar)).Value
= "Hallo"
.ExecuteNonQuery()
End With
With myCom
.Parameters.Add("@1", MySqlDbType.VarChar).Value = "Hallo"
.Parameters.Add("@2", MySqlDbType.VarChar).Value = "Hallo"
.Parameters.Add("@3", MySqlDbType.VarChar).Value = "Hallo"
.Parameters.Add("@4", MySqlDbType.VarChar).Value = "Hallo"
.ExecuteNonQuery()
End With
With myCom
.Parameters.AddWithValue("@1", "Hallo")
.Parameters.AddWithValue("@2", "Hallo")
.Parameters.AddWithValue("@3", "Hallo")
.Parameters.AddWithValue("@4", "Hallo")
.ExecuteNonQuery()
End With

Was mache ich falsch? Ich dachte man kann mit mySQL genauso mit
Parameterobjekten arbeiten wie sonst?!

Gruß,
Thomas
 

Lesen sie die antworten

#1 Thomas Hübner
23/08/2008 - 17:05 | Warnen spam
Das Statement für die Parametervarianten sieht natürlich wie folgt aus:
Dim myCom As New MySqlCommand("INSERT INTO data
(text1,text2,text3,text4) Values (@1,@2,@3,@4)", myConn)

Ähnliche fragen