Zum Inhalt springen

VB.net mit MySQL Connector/net und phpMyAdmin


Empfohlene Beiträge

Geschrieben

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 :(

Geschrieben

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

Geschrieben

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

Geschrieben

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.

Geschrieben

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..

Geschrieben

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

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...