ERLEDIGT
NEIN
NEIN
ANTWORTEN
13
13
ZUGRIFFE
2641
2641
EMPFEHLEN
-
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 :1 2 3 4 5 6 7
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.Grüße Nico
----------------------
Xing
----------------------
Zitat von Mark Twain (1835-1910)
Zitat von Mike Wilson - Biographie über Larry Ellison (CEO Oracle)
-
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.
JensHilfreiche Posts bitte bewerten !
-
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:
eingegeben habe ich folgenden code zum testen der verbindung: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.
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
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
-
Du musst dein Connection-Objekt aus instantiieren!
Unter http://www.galileocomputing.de/katal...902A3-f85-ED88 findest du ein gutes Buch zum Einstieg. Das solltest du dir genauer anschauen!Grüße Nico
----------------------
Xing
----------------------
Zitat von Mark Twain (1835-1910)
Zitat von Mike Wilson - Biographie über Larry Ellison (CEO Oracle)
-
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!Grüße Nico
----------------------
Xing
----------------------
Zitat von Mark Twain (1835-1910)
Zitat von Mike Wilson - Biographie über Larry Ellison (CEO Oracle)
-
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/....htm#Xxx999339
@Frage mit TextBox
Schau dir dafür die Command- und die DataReader-Klasse mal an, die helfen dir dabei
Grüße Nico
----------------------
Xing
----------------------
Zitat von Mark Twain (1835-1910)
Zitat von Mike Wilson - Biographie über Larry Ellison (CEO Oracle)
-
Im GalileoComputing openebook wird mit ODBC zum SQL Sever connectet, sind über connect/NET die Funktionen und Methoden gleich?
-
Hi
Ja sind sie. Die Klassen basieren alle auf der gleichen abstrakten Basisklasse. Sind nur auf die speziellen Fälle (Sql Server, ODBC, OleDb, MySQL, ...) angepasstGrüße Nico
----------------------
Xing
----------------------
Zitat von Mark Twain (1835-1910)
Zitat von Mike Wilson - Biographie über Larry Ellison (CEO Oracle)
-
Ich danke euch schon mal alle für das Tapfer beistehen und helfen bei meinen ersten Gehversuchen mit ADO.NET
anbei natürlich noch eine kleine frage
will den inhalt des feldes name aus der tabelle user in einem textfeld haben!
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
Imports MySql.Data.MySqlClient Public Class Form1 Dim Con As New MySqlConnection Dim sqlConnString As String = "SERVER=localhost;DATABASE=shopi;uid=root;Connection Timeout=30;logging=True;Pooling=False;port=3306;" Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click connectiontest() End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click auslesen() End Sub Sub connectiontest() Try 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 Catch ex As Exception MsgBox("Fehler beim verbinden mit der datenbank") End Try Con.Close() End Sub Sub auslesen() Try Dim strSQL As String = "SELECT name from user WHERE id='1';" Con.ConnectionString = sqlConnString Con.Open() Dim cmd As MySqlCommand = New MySqlCommand(strSQL, Con) Dim ergebnis As String ergebnis = cmd.ExecuteNonQuery Catch ex As Exception MsgBox("Fehler beim auslesen der datenbank") End Try Con.Close() End Sub End Class
thx
-
Hi
ExecuteNonQuery ist dafür die falsche Methode.
Nutze dafür ExecuteReader oder wenn du sicher bist, dass genau ein Datum zurück kommt ExecuteScalar
ExecuteReader liefert dir eine DataReader zurück, von dem du dir die entsprechenden Werte geben lassen kannst.
ExecuteScalar liefert genau einen Wert zurück.Grüße Nico
----------------------
Xing
----------------------
Zitat von Mark Twain (1835-1910)
Zitat von Mike Wilson - Biographie über Larry Ellison (CEO Oracle)
Ähnliche Themen
-
Mit MySQL in Eclipse verbinden
Von pabatribick im Forum JavaAntworten: 6Letzter Beitrag: 08.12.09, 13:20 -
XML Abfrage und MySQL verbinden?
Von wownoxer im Forum PHPAntworten: 1Letzter Beitrag: 19.05.08, 14:22 -
MYSQL > 2 Queries verbinden
Von ahykes im Forum Relationale DatenbanksystemeAntworten: 1Letzter Beitrag: 02.08.07, 06:26 -
Software: Mysql Administrator, kann nicht mit mysql verbinden
Von wingman im Forum Hosting & WebserverAntworten: 9Letzter Beitrag: 26.02.05, 19:00 -
mysql tabellen verbinden
Von dreambaser im Forum PHPAntworten: 3Letzter Beitrag: 16.02.05, 18:04





Zitieren

Login





