VB.NET mit MySQL verbinden

timee

Mitglied
Hallo Leute,

bin absoluter neuling, wenn es darum geht mit VB.NET eine Datenbank zu bearbeiten!
Alle Anleitungen und Bücher die ich bis jetzt darüber gelesen habe, handeln nur von Access und MS SQL Server, jedoch nicht von MySQL!

Nun finde ich hier keine Anleitung, die mir zeigt wie ich mirch zu einem MySQL Server verbinden kann und wie ich dort Kommandos ausführen kann, hoffe nun auf eure kompetente Hilfe.

Visual Studio 2005
XAMPP mit MySQL auf localhost
Datenbank und erste Tabelle bereits über phpmyadmin angelegt
benutzter für vb.net eingerichtet


thx
timee
 
heute habe ich noch etwas das netz durchforstet und anschliessend den mysql connector / net installiert.

MySQL.Data in die Verweisliste hinzugefügt und wollte anschliessend die verbindung testen, doch leider bekomme ich keine zustande!

zum testen der verbindung habe ich folgenden code geschrieben:
Code:
Try
            Dim con As New SqlConnection
            con.ConnectionString = "Data Source=localhost;" & "Initial Catalog=dbname;" & "User IDusernamei;" & "Password=userpwd;"
            con.Open()
Catch ex As Exception
            MsgBox("Fehler beim verbinden mit der datenbank")
End Try

wie kann ich mich richtig an meiner MySQL Datanbank anmelden?

thx
timee
 
Hi und herzlich willkommen

Aber zum einen hast du den SqlConnector genutzt, also den für den Sql Server ;)
Zum anderen solltest du dir den Inhalt der Exception anschauen, da würde nämlich drin stehen, dass der Sql Server nicht gefunden wurde ;)

Und noch 2 Hinweise:
Zum einen fehlt in deinem ConnectionString ein =-Zeichen und zum anderen ist die String-Verkettung die du da machst sehr teuer! Zumal du sie da nicht benötigst.
 
Hallo timee,

das einzige was du richtig gemacht hast ist das Einbinden der
MySQL.Data.dll :)

Du nutzt diese aber nicht, stattdessen den SQL Provider des Frameworks und dessen Connectionstring bzw. den vom SQL Server. Das kann nicht funktionieren.

Importiere

Imports MySql.Data.MySqlClient

und nutze

Private Conn As MySqlConnection

Der mysql Connectionstring sieht etwa so aus:

SERVER=deinServer z.B. localhost;DATABASE=deineDatenbank;uid=Benutzer;
pwd=deinPassword;Connection Timeout=Zeit in Sekunden; logging=True;Pooling=False;port=3306 (kann abweichen aber 3306 ist Standard);

XAMPP hättest du gar nicht installieren brauchen, MySQL kann auch
einzeln installiert werden und zum Administrieren unter Windows
gibt es andere Tools als phpmyadmin. Siehe Tools auf der mysql AB Seite.

Es sei denn du hast noch andere Anwendungen laufen die Apache,php usw.
lokal benötigen. Wenn nicht ist es sinnloser Ballast, der das System bremst.


Jens
 
Na dann bin ich ja froh, dass ich wenigsten die MySQL.Data richtig eingebunden habe! :)

Leider funktioniert es irgendwie immer noch nicht?
Bei der Ausführung bekomme ich folgendes Ergebnis in der Fehlerliste angezeigt:
bei System.Threading.ThreadHelper.ThreadStart()</ExceptionString><DataItems><Data><Key>HelpLink.ProdName</Key><Value>Microsoft SQL Server</Value></Data><Data><Key>HelpLink.EvtSrc</Key><Value>MSSQLServer</Value></Data><Data><Key>HelpLink.EvtID</Key><Value>2</Value></Data><Data><Key>HelpLink.BaseHelpUrl</Key><Value>http://go.microsoft.com/fwlink</Value></Data><Data><Key>HelpLink.LinkId</Key><Value>20476</Value></Data></DataItems></Exception></TraceRecord>
Eine Ausnahme (erste Chance) des Typs "System.Data.Odbc.OdbcException" ist in System.Data.dll aufgetreten.
Eine Ausnahme (erste Chance) des Typs "System.NullReferenceException" ist in test.exe aufgetreten.
Eine Ausnahme (erste Chance) des Typs "System.NullReferenceException" ist in DBtest.exe aufgetreten.
Eine Ausnahme (erste Chance) des Typs "System.NullReferenceException" ist in DBtest.exe aufgetreten.

eingegeben habe ich folgenden code zum testen der verbindung:
Code:
Imports MySql.Data.MySqlClient

Public Class Form1
    Private Conn As MySqlConnection

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        ReadData()
    End Sub

    Sub ReadData()
        Try
            Conn.ConnectionString = "SERVER=localhost;DATABASE=shopi;uid=root;Connection Timeout=30;logging=True;Pooling=False;port=3306;"
            Conn.Open()
        Catch ex As Exception
            MsgBox("Fehler beim verbinden mit der datenbank")
        End Try
    End Sub

End Class
 
Jo, hatte doch vergessen NEW mit einzufügen!

Die Verbindung kommt nun zumindest mal zusammen.
Hab mir auxh schon zwei Bücher über ADO.NET bei terrashop bestellt, doch leider kann ich so lange dann nicht an meinem PRojekt weiterarbeiten.

Wie müsste es den aussehen, wenn ich das Ergebnis des Befehls "SELECT name from user WHERE id=1;" in TextBox1 stehen haben will?

big THX
timee
 
Du hättest dir den Link wenigstens mal anschauen können! Das sind nämlich kostenlose e-Books!

Du solltest dich schon damit beschäftigen. Die Suchfunktion würde dir übrigens auch eine Antwort liefern!
 
Natürlich habe ich mir deinen Link angesehen, aber dort finde ich nur ein eBook über Visual Basic 2008 und mit ADO.NET findet er auch nichts.
Wie bereits geschrieben, habe ich mir auch zwei Bücher bei Terrashop bestellt, nur würde ich gerne etwas weiter machen bis diese eintreffen.
 
Hi

VB.NET = Visual Basic.NET die Jahreszahl ist dabei uninteressant.
VB 2002/2003, VB 2005 VB 2008 ist alles VB.NET.
Die Angabe der Jahreszahl verdeutlicht nur, mit welcher Version von Visual Studio die Version der Sprache releast wurde. Dabei hat sich abe der Kern nicht geändert.
Das Buch für VB 2005 ist übrigens auch noch verfügbar

@ADO.NET
http://openbook.galileocomputing.de/visual_basic/Kapitel_26-001.htm#Xxx999339

@Frage mit TextBox
Schau dir dafür die Command- und die DataReader-Klasse mal an, die helfen dir dabei :)
 

Neue Beiträge

Zurück