Rodney Geschrieben 19. April 2011 Geschrieben 19. April 2011 Guten Tag , Ich bin gerade dabei eine Verbindung zu einer MySQl Datenbank herzustellen mit VB.net. Verbindung zum Server und zur Datenbank funktioniert auch, aber es lassen sich keine Daten in die Datenbank eintragen ... Dim Con As New MySqlConnection Dim sqlConnString As String = "SERVER=localhost;DATABASE=Test;uid=root;Connection Timeout=30;logging=True;Pooling=False;port=3306;" Con.ConnectionString = sqlConnString Con.Open() 'Verbindungsstatus: If Con.State = ConnectionState.Open Then TextBox1.Text = "Verbindung zum Server war erfolgreich." Else TextBox1.Text = "Verbindung zum Server war NICHT erfolgreich." End If Stop Dim cmd As New MySqlCommand("INSERT INTO Abrechnung (Art) " _ & "VALUES 'test'") Con.Close() Also das mit MySQLCommand führt er nicht aus ... Die Tabelle heißt auch richtig ... Ich hoffe mir kann jemand schnell helfen Zitieren
ToolsDevler Geschrieben 19. April 2011 Geschrieben 19. April 2011 Hallo Rodney, bin da grad nich voll auf dem laufenden. Aber soweit ich weis, musst du das ungefähr so machen (ausm Kopf und als C#ler geschrieben... Sry wenns ned ganz Codekonform is ) Dim sqlCmd As MySqlCommand = Con.CreateCommand() sqlCmd.CommandText = "Deine SQL-Anweisung"; sqlCmd.ExecuteNonQuery(); Auf jeden Fall, kannst du das Command-Objekt aus deiner Verbindung erzeugen und eine Abfrage/Anweisung abschicken. Hoffe ich konnte damit helfen. Grüße ToolsDevler Zitieren
Rodney Geschrieben 19. April 2011 Autor Geschrieben 19. April 2011 Ahhhh, Dankeschön, klappt soweit wunderbar Da ich es auch zum ersten mal mache, kann ich dagegen wohl nichts sagen läuft aber einwandfrei. Kannst du mir vllt auch sagen wie ich ihn jetzt sagen kann das er eine Variable die ich in vb.net zugewiesen hab in einer Spalte schreibt? mit '' gehts nich mit '" auch nich, und ohne irgendwas auch nich :S Dim sqlCmd As MySqlCommand = Con.CreateCommand() Dim test As String test = "Dies ist ein Test" sqlCmd.CommandText = "INSERT INTO Abrechnung (Art) VALUES (test)" sqlCmd.ExecuteNonQuery() mfg Zitieren
ToolsDevler Geschrieben 19. April 2011 Geschrieben 19. April 2011 Dazu gibt es ein kleines aber nettes Feature mit SqlParameter (ich weiß nich, ob des bei den MySql-Klassen auch is): Im Command Text definierst du Platzhalter mit @Parametername ohne Anführungszeichen oder sowas. Dann erstellst du einen Parameter: Dim sqlCmd As MySqlCommand = Con.CreateCommand() sqlCmd.CommandText = "INSERT INTO @tabelle VALUES(@...);" Dim testParameter As MySqlParameter = new MySqlParameter("@tabelle",...) testParameter.Value = "Tabellenname" sqlCmd.Parameters.Add(testParameter) sqlCmd.ExecuteNonQuery() Hoffe, dass das bei dir geht. Grüße ToolsDevler PS: Dadurch lassen sind auch bestimmte Sicherheitsmaßnahmen (z.B. gegen SqlInjections) gewährleisten. Zitieren
Rodney Geschrieben 19. April 2011 Autor Geschrieben 19. April 2011 Fehler bei der Überladungsauflösung, da keine zugreifbare "New" diese Anzahl von Argumenten akzeptiert. Kommt bei dieser Zeile: Dim testParameter As MySqlParameter = New MySqlParameter("@test") Hier nochmal alles: Dim sqlCmd As MySqlCommand = Con.CreateCommand() Dim test As String test = "Dies ist ein Test" sqlCmd.CommandText = "INSERT INTO Abrechnung (Art) VALUES (@test)" Dim testParameter As MySqlParameter = New MySqlParameter("@test") testParameter.Value = "Abrechnung" sqlCmd.Parameters.Add(testParameter) sqlCmd.ExecuteNonQuery() Hmmm.. Zitieren
ToolsDevler Geschrieben 19. April 2011 Geschrieben 19. April 2011 Habe mich ein wenig schlau gemacht und bin bei den ersten Ergebnissen von Google auf diese Seite gestoßen. Ausschnitt: '*** FOR INSERT ***' strSQL = "INSERT INTO customer (CustomerID,Name,Email,CountryCode,Budget,Used) " & _ "VALUES (?sCustomerID,?sName,?sEmail,?sCountryCode,?sBudget,?sUsed)" objCmd = New MySql.Data.MySqlClient.MySqlCommand(strSQL,objConn) With objCmd .Parameters.Add(new MySqlParameter("sCustomerID", "C005")) .Parameters.Add(new MySqlParameter("sName", "Weerachai Nukitram")) .Parameters.Add(new MySqlParameter("sEmail", "webmaster@shotdev.com")) .Parameters.Add(new MySqlParameter("sCountryCode", "TH")) .Parameters.Add(new MySqlParameter("sBudget", "2000000")) .Parameters.Add(new MySqlParameter("sUsed", "100000")) End With objCmd.ExecuteNonQuery() Grüße ToolsDevler Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.