Visual Basic Express 2008 an MySQL-Datenbank konnektieren
Visual Basic Express 2008
MySQL-Server 5.0 WIN
In meiner Verzweiflung muss ich jetzt doch einmal den Rat der Gemeinde suchen.
Was möchte ich:
Meinen VB-Code mit Daten einer MySQL-Tabelle füttern.
Was habe ich bereits getan:
Connector installiert http://dev.mysql.com/downloads/connector/net/5.2.html
Im Datenbank-Explorer versucht, die Verbindung einzurichten
Ein paar Tipps, die ich noch gefunden habe,
aber leider nicht zurecht kommen oder die nicht funktionieren:
Connection String: "Data Source=myServer;Database=myDB;User ID=myUser;Password=myPass"
MySQL Connection: MySql.Data.MySqlClient.MySqlConnection
MySQL Command: MySql.Data.MySqlClient.MySqlCommand
Meine Frage:
Ist es überhaupt möglich in der Express-Edition 2008 eine MySQL-Datenbank einzubinden?
Wenn ja, kann mir jemand ein paar Tipps, Links oder Beispielcode geben?
Gruß, Oliver
MySQL-Server 5.0 WIN
In meiner Verzweiflung muss ich jetzt doch einmal den Rat der Gemeinde suchen.
Was möchte ich:
Meinen VB-Code mit Daten einer MySQL-Tabelle füttern.
Was habe ich bereits getan:
Connector installiert http://dev.mysql.com/downloads/connector/net/5.2.html
Im Datenbank-Explorer versucht, die Verbindung einzurichten
Ein paar Tipps, die ich noch gefunden habe,
aber leider nicht zurecht kommen oder die nicht funktionieren:
Connection String: "Data Source=myServer;Database=myDB;User ID=myUser;Password=myPass"
MySQL Connection: MySql.Data.MySqlClient.MySqlConnection
MySQL Command: MySql.Data.MySqlClient.MySqlCommand
Meine Frage:
Ist es überhaupt möglich in der Express-Edition 2008 eine MySQL-Datenbank einzubinden?
Wenn ja, kann mir jemand ein paar Tipps, Links oder Beispielcode geben?
Gruß, Oliver
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 90766
Url: https://administrator.de/contentid/90766
Ausgedruckt am: 26.11.2024 um 04:11 Uhr
3 Kommentare
Neuester Kommentar
hi,
also erstmal im projekt-explorer mit rechts auf verweise -> 'verweis hinzufügen' klicken. dann über das 'browse' feld zum installationspfad durchklicken (c:\Programme\MySQL\MySQL Connector Net\Binaries\.NET 2.0) und die MySql.Data.dll auswählen.
Okay, damit ist die dll referenziert und kann benutzt werden.
Jetzt zum Code:
Die folgenden Import-Statements kannst du vor jede Klasse setzen, in der du die MySql Verbindung nutzen willst. Das erspart etwas Tipp-Arbeit ;)
Zur Verbindung wird folgender ConnectionString benötigt:
Die Felder (DATENBANKNAME), (SERVERNAME), (BENUTZER) und (PASSWORT) müssen natürlich von dir noch mit den entsprechenden Werten gefüllt werden
Folgende 2 Objekte werden auf jeden Fall benötigt:
So, das waren die Vorbereitungen.
Um die Datenbankverbindung nun zu öffnen, erstellst du eine neue Instanz des Connection-Objekts und übergibst diesem den Connectionstring
Um die Verbindung wieder zu schließen, reicht ein Aufruf der Close-Methode und das anschließende Bereinigen der Variable:
Ab jetzt wird es interessant (und auch kompliziert, deswegen beschränke ich mich auf deine Aufgabenvorlage)
Um Daten aus einer SQL-Datenbank abzurufen, wird natürlich ein SQL-String benötigt.
Wobei (FELDER) für eine Auflistung aller benötigten Spalten und (TABELLE) für den Tabellennamen steht.
Dieser SQL-String wird an das Command-Objekt übergeben, zusammen mit dem Objekt für die Datenbankverbindung
Zusätzlich wird ein Objekt benötigt, das uns die ausgelesenen Daten zur Verfügung stellt. Am einfachsten
ist dies mit einem SQLDataReader-Objekt zu bewerkstelligen, dem die Ergebnisse des Command-Objekts übergeben werden
Durch die Ergebnisse kann nun mit einer Do...Loop Schleife iteriert werden
Wobei hier Feld1, Feld2 etc für die Namen der Spalten, wie im SQL-String angegeben steht.
Danach wird auch der SqlDataReader wieder geschlossen
Okay, das war die Theorie
Jetzt nochmal ein zusammenfassendes Beispiel:
Wir möchten die Felder 'KundenName', 'Strasse' und 'Ort' aus der Tabelle 'Kunden' in der Datenbank 'tblKundendaten' auf
dem Server 'srv-wawi' auslesen und in einer MsgBox ausgeben. Das ganze wird über die Prozedur 'LeseKundenDaten' in
der Klasse 'KundenLeser' bewerkstelligt.
Off we go ...
also erstmal im projekt-explorer mit rechts auf verweise -> 'verweis hinzufügen' klicken. dann über das 'browse' feld zum installationspfad durchklicken (c:\Programme\MySQL\MySQL Connector Net\Binaries\.NET 2.0) und die MySql.Data.dll auswählen.
Okay, damit ist die dll referenziert und kann benutzt werden.
Jetzt zum Code:
Die folgenden Import-Statements kannst du vor jede Klasse setzen, in der du die MySql Verbindung nutzen willst. Das erspart etwas Tipp-Arbeit ;)
Imports MySql.Data.MySqlClient
Imports MySql.Data.Types
Zur Verbindung wird folgender ConnectionString benötigt:
Dim strConn As String = "Persist Security Info=False;database=(DATENBANKNAME);server=(SERVERNAME);user id=(BENUTZER);Password=(PASSWORT);charset=latin1"
Die Felder (DATENBANKNAME), (SERVERNAME), (BENUTZER) und (PASSWORT) müssen natürlich von dir noch mit den entsprechenden Werten gefüllt werden
Folgende 2 Objekte werden auf jeden Fall benötigt:
'stellt die Verbindung mit der Datenbank zur Verfügung
Dim objMySQL as MySqlConnection
'erlaubt das Ausführen von SQL-Statements
Dim objCommand as MySqlCommand
So, das waren die Vorbereitungen.
Um die Datenbankverbindung nun zu öffnen, erstellst du eine neue Instanz des Connection-Objekts und übergibst diesem den Connectionstring
objMySQL = New MySqlConnection(strConn)
objMySQL.Open
Um die Verbindung wieder zu schließen, reicht ein Aufruf der Close-Methode und das anschließende Bereinigen der Variable:
objMySQL.Close
objMySQL = Nothing
Ab jetzt wird es interessant (und auch kompliziert, deswegen beschränke ich mich auf deine Aufgabenvorlage)
Um Daten aus einer SQL-Datenbank abzurufen, wird natürlich ein SQL-String benötigt.
Dim strSQL as string = "SELECT (FELDER) FROM (TABELLE)"
Wobei (FELDER) für eine Auflistung aller benötigten Spalten und (TABELLE) für den Tabellennamen steht.
Dieser SQL-String wird an das Command-Objekt übergeben, zusammen mit dem Objekt für die Datenbankverbindung
objCommand = New MySqlCommand(strSQL, objMySql)
Zusätzlich wird ein Objekt benötigt, das uns die ausgelesenen Daten zur Verfügung stellt. Am einfachsten
ist dies mit einem SQLDataReader-Objekt zu bewerkstelligen, dem die Ergebnisse des Command-Objekts übergeben werden
Dim objReader as MySqlDataReader
objReader = objCommand.ExecuteQuery
Durch die Ergebnisse kann nun mit einer Do...Loop Schleife iteriert werden
Do Until objReader.Read = False
dim strFeld1 as string = objReader!Feld1
dim strFeld2 as string = objReader!Feld2
msgbox strFeld1 & ":" & strFeld2
Loop
Wobei hier Feld1, Feld2 etc für die Namen der Spalten, wie im SQL-String angegeben steht.
Danach wird auch der SqlDataReader wieder geschlossen
objReader.Close
objReader = Nothing
Okay, das war die Theorie
Jetzt nochmal ein zusammenfassendes Beispiel:
Wir möchten die Felder 'KundenName', 'Strasse' und 'Ort' aus der Tabelle 'Kunden' in der Datenbank 'tblKundendaten' auf
dem Server 'srv-wawi' auslesen und in einer MsgBox ausgeben. Das ganze wird über die Prozedur 'LeseKundenDaten' in
der Klasse 'KundenLeser' bewerkstelligt.
Off we go ...
Imports MySql.Data.MySqlClient
Imports MySql.Data.Types
Public Class KundenLeser
Public Sub LeseKundenDaten()
'stellt die Verbindung mit der Datenbank zur Verfügung
Dim objMySQL as MySqlConnection
'erlaubt das Ausführen von SQL-Statements
Dim objCommand as MySqlCommand
'datareader
Dim objReader as MySqlDataReader
'connection-string
Dim strConn As String = "Persist Security Info=False;database=tblKundendaten;server=srv-wawi;user id=sqluser;Password=12345;charset=latin1"
'sql-statement
Dim strSQL as string = "SELECT Kundenname, Strasse, Ort FROM Kunden"
'dieser String enthält nachher die Kundendaten, ein Datensatz pro Zeile
dim strResult as string = ""
'datenbankverbindung aufbauen
objMySQL = New MySqlConnection(strConn)
objMySQL.Open
'command-objekt vorbereiten und an den Reader übergeben
objCommand = New MySqlCommand(strSQL, objMySql)
objReader = objCommand.ExecuteQuery
'ergebnisse auslesen und in string speichern
Do Until objReader.Read = False
dim strName as string = objReader!KundenName
dim strStrasse as string = objReader!Strasse
dim strOrt as string = objReader!Ort
strResult &= strName & ", " & strStrasse & ", " & strOrt & vbcrlf
Loop
'Datenbankverbindungen schließen und bereinigen
objReader.close
objMySQL.Close
objReader = Nothing
objCommand = Nothing
objMySQL = Nothing
'ergebniss anzeigen
MsgBox strResult, vbokonly, "SQL Ergebniss"
End Sub
End Class
Hallo
bin neu in der Materie
Hab das Script mal ausprobiert und bekomme folgenden Fehler:
Fehler 2 "ExecuteQuery" ist kein Member von "MySql.Data.MySqlClient.MySqlCommand". J:\vb programmierung plus\vb\mysqlconnectiontest\mysqlconnectiontest\Form1.vb 32 21 mysqlconnectiontest
Kann mir einer sagen was ich falsch mache ? hat vielleicht jemand ein einfaches Script für mich das einfach 3 Werte ( Vorname, Nachname , Titel ) aus einer MYSQL DB ( test) mit der Tabelle ( namen ) ausliest und mir in 3 Spalten ausgibt. Mir wäre damit wahnsinnig geholfen.
Danke schon mal
bin neu in der Materie
Hab das Script mal ausprobiert und bekomme folgenden Fehler:
Fehler 2 "ExecuteQuery" ist kein Member von "MySql.Data.MySqlClient.MySqlCommand". J:\vb programmierung plus\vb\mysqlconnectiontest\mysqlconnectiontest\Form1.vb 32 21 mysqlconnectiontest
Kann mir einer sagen was ich falsch mache ? hat vielleicht jemand ein einfaches Script für mich das einfach 3 Werte ( Vorname, Nachname , Titel ) aus einer MYSQL DB ( test) mit der Tabelle ( namen ) ausliest und mir in 3 Spalten ausgibt. Mir wäre damit wahnsinnig geholfen.
Danke schon mal