none
MySQL und VB.net RRS feed

  • Frage

  • Hallo liebe VB Gemeinde,

    ich habe heute mal eine allgemeine Frage zum umgang mit MySql. Und zwar habe ich zuerst alles immer wie in Datenbank Tutorial beschrieben gemacht. Dann habe ich mir eine klasse mit funktionen gebastelt die mir das verbinden,trennen,abfragen, usw. erledigt. Nun meine Frage: gibt es noch eine elegantere Art das ganze MySql abzuhandeln?

    VG

    Okeanos

    Donnerstag, 3. Mai 2012 11:03

Antworten

  • Meine Frage zielt darauf ab ob irgend jemand eine Klasse geschieben hat, welche die arbeit mit MySql vereinfacht / fehlerfrei / performant ist. Oder ob vielleicht jemand einen ganz anderen Lösungsweg gewählt hat, der womöglich besser ist als das ganze in eine Klasse zu scheiben.

    VG

    Okeanos

    Hallo Okeanus,

    es gibt nur zwei Lösungswege für MySQL.

    Die erste Variante mit dem NET connector, welche Robert aufgezeigt hat ist sehr gut und zu bevorzugen.

    Dann gibt es noch die Möglichkeit mit dem MySQL OBDC Treiber. Der stellt die Verbindung als ODBC Datenquelle mit der Datenbank her. Auf der NET Seite benutzt man dann ODBC Methoden:

    System.Data,odbc

    Der MySQL Treiber muss einmalig installiert sein und ist auf den MySQL Seiten als 32bit und 64bit Version zu finden. Getestet habe ich beide. Der code sieht fast analog aus wie der den Robert gepostet hat. Das nimmt sich vom Aufwand her nicht viel:

     Private Function dbAccess(ByVal strSQL As String) As Boolean
            Dim tab As String = "Table0"
            'Connector/ODBC 3.51 connection string
            Dim MyConString As String = "DRIVER={MySQL ODBC 3.51 Driver};" & _
            "SERVER=13.177.224.53;" & _
            "DATABASE=result;" & _
            "USER=username;" & _
            "PASSWORD=password;" & _
            "OPTION=2;"
            Dim adapter As OdbcDataAdapter
            Try
                adapter = New OdbcDataAdapter(strSQL, MyConString)
                adapter.MissingMappingAction = MissingMappingAction.Passthrough
                adapter.MissingSchemaAction = MissingSchemaAction.AddWithKey
              
            Catch ex As Exception
                'error occurs here
                MsgBox("error connection: " & ex.Message)
                Return False
            End Try
            adapter.Fill(DataSet1, tab)
            DataGridView1.DataSource = DataSet1
            DataGridView1.DataMember = tab
            Return True
        End Function

    Du willst aber noch einen wrapper für Alles. So was gibt es nicht. So wie dargestellt musst Du schon einsteigen. So schwer ist das aber nicht, finde ich. Ich hoffe ich konnte Dir helfen.

    Gruss Ellen

    P.S. die links von Robert sind super. Habe die erforderlichen ODBC Treiber zum download gefunden:

    http://www.mysql.com/downloads/connector/odbc/

    Je nachdem für welche der beiden Varainten Du dich entscheidest, würde ich von jeder anderen Lösung (einer alles Könner dll) abraten. Arbeite Dich in NET ODBC oder NET connector ein. Das macht Sinn

    Nachtrag2. Habe den code als Projekt in die Gallery eingestellt

    http://code.msdn.microsoft.com/MySQL-connectorODBC-01412db7


    Ich benutze/ I'm using VB2008 & VB2010




    Donnerstag, 3. Mai 2012 12:51

Alle Antworten

  • Hi,

    was verstehst Du unter "eleganter"? Ohne zu wissen, was Du gerne wie machen würdest, kann man da wenig bis gar nichts sagen.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Donnerstag, 3. Mai 2012 11:18
    Moderator
  • hi,

    ja ist etwas schwammig formuliert. Meine Frage zielt darauf ab ob irgend jemand eine Klasse geschieben hat, welche die arbeit mit MySql vereinfacht / fehlerfrei / performant ist. Oder ob vielleicht jemand einen ganz anderen Lösungsweg gewählt hat, der womöglich besser ist als das ganze in eine Klasse zu scheiben.

    VG

    Okeanos

    Donnerstag, 3. Mai 2012 11:56
  • Meine Frage zielt darauf ab ob irgend jemand eine Klasse geschieben hat, welche die arbeit mit MySql vereinfacht / fehlerfrei / performant ist. Oder ob vielleicht jemand einen ganz anderen Lösungsweg gewählt hat, der womöglich besser ist als das ganze in eine Klasse zu scheiben.

    VG

    Okeanos

    Hallo Okeanus,

    es gibt nur zwei Lösungswege für MySQL.

    Die erste Variante mit dem NET connector, welche Robert aufgezeigt hat ist sehr gut und zu bevorzugen.

    Dann gibt es noch die Möglichkeit mit dem MySQL OBDC Treiber. Der stellt die Verbindung als ODBC Datenquelle mit der Datenbank her. Auf der NET Seite benutzt man dann ODBC Methoden:

    System.Data,odbc

    Der MySQL Treiber muss einmalig installiert sein und ist auf den MySQL Seiten als 32bit und 64bit Version zu finden. Getestet habe ich beide. Der code sieht fast analog aus wie der den Robert gepostet hat. Das nimmt sich vom Aufwand her nicht viel:

     Private Function dbAccess(ByVal strSQL As String) As Boolean
            Dim tab As String = "Table0"
            'Connector/ODBC 3.51 connection string
            Dim MyConString As String = "DRIVER={MySQL ODBC 3.51 Driver};" & _
            "SERVER=13.177.224.53;" & _
            "DATABASE=result;" & _
            "USER=username;" & _
            "PASSWORD=password;" & _
            "OPTION=2;"
            Dim adapter As OdbcDataAdapter
            Try
                adapter = New OdbcDataAdapter(strSQL, MyConString)
                adapter.MissingMappingAction = MissingMappingAction.Passthrough
                adapter.MissingSchemaAction = MissingSchemaAction.AddWithKey
              
            Catch ex As Exception
                'error occurs here
                MsgBox("error connection: " & ex.Message)
                Return False
            End Try
            adapter.Fill(DataSet1, tab)
            DataGridView1.DataSource = DataSet1
            DataGridView1.DataMember = tab
            Return True
        End Function

    Du willst aber noch einen wrapper für Alles. So was gibt es nicht. So wie dargestellt musst Du schon einsteigen. So schwer ist das aber nicht, finde ich. Ich hoffe ich konnte Dir helfen.

    Gruss Ellen

    P.S. die links von Robert sind super. Habe die erforderlichen ODBC Treiber zum download gefunden:

    http://www.mysql.com/downloads/connector/odbc/

    Je nachdem für welche der beiden Varainten Du dich entscheidest, würde ich von jeder anderen Lösung (einer alles Könner dll) abraten. Arbeite Dich in NET ODBC oder NET connector ein. Das macht Sinn

    Nachtrag2. Habe den code als Projekt in die Gallery eingestellt

    http://code.msdn.microsoft.com/MySQL-connectorODBC-01412db7


    Ich benutze/ I'm using VB2008 & VB2010




    Donnerstag, 3. Mai 2012 12:51
  • Hallo Okeanos_85_02,

    Ich gehe davon aus, dass die Antwort Dir weitergeholfen hat.
    Solltest Du noch "Rückfragen" dazu haben, so gib uns bitte Bescheid.

    Grüße,
    Robert


    Robert Breitenhofer, MICROSOFT  Twitter Facebook
    Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „Entwickler helfen Entwickler“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.

    Mittwoch, 23. Mai 2012 13:45
    Moderator