Mit VB2008 eine MySQL Datenbank auslesen??

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von fichz.

    Mit VB2008 eine MySQL Datenbank auslesen??

    Hallo,
    Ich bescheftige mich seit geringer zeit mit MySQL Datenabnken.
    Un jetzt will ich sie über das locale net in eine VB Form rin machen hal so
    zu sagen eine abfrage zu machen.
    Ist das möglich??
    Wenn wie??

    Lg

    Bastinebster
    deine rechtschreibung ist immer noch grausam :P

    möglich ist dies natürlich schon, ich habs bisher immer so gelöst, das ich eine im www liegende sql datenbank nehme, mir ein phpfile erzeuge, in welcher die ganzen abfragen stehen, und dieses php file mit vb aufrufe, und verschiedene befehle und daten übergebe(hierbei sollte drauf geachtet werden, mit sowenig daten wie möglich zu arbeiten, da diese mit nem sniffer ohne probleme mit gelesen werden)

    ist allerdings ein recht komplexes thema, und es geht auch direkt ohne ein phpfile zu verwenden
    Hallo Bastinebster,

    wie mein Vorredner schon sagte ist das Lesen deiner Sätze wirklich schwierig.
    Das du nun MySQL ansprechen willst konnte ich verstehen, jedoch weiß ich nicht ob Online oder lokal.

    Bitte beschreibe deine Problematik und Zielsetzung noch einmal in normalem Hochdeutsch und ich werde versuchen dir einen passenden Quellcode zu liefern.
    Ich selber Probiere da momentan rum und habe diverse Lösungen ausprobiert, ob diese Optimal sind wage ich zu bezweifeln.

    Fragen:
    1) Datenbank lokal oder Online?
    2) Was soll passieren? Nur lesen oder auch schreiben/Updaten
    3) Wo sollen die Ergebnisse ausgegeben werden?
    Im Prinzip ist es egal ob man auf einen Online oder auf einem Lokalen Server zugreift.
    Man muss dann eben nur einen anderen Server angeben...
    Zuerst einmal brauchst du den MySQL Connector.
    Nun musst du die Verweise zu den MySQL-Dateien herstellen. (Projekt->Verweis hinzufügen->Durchsuchen->Dateien auswählen)
    Zum Code:
    Button1 liest die Datenbank, Button2 schreibt in die Datenbank.

    VB.NET-Quellcode

    1. Imports MySql.Data.MySqlClient
    2. Imports MySql
    3. Imports MySql.Data
    4. Public Class Form1
    5. 'MySQL deklarieren
    6. Dim conn As New MySqlConnection("server=SERVER;user id=USER;password=PASSWORT;database=DATENBANK")
    7. Dim myCommand As New MySqlCommand
    8. Dim myAdapter As New MySqlDataAdapter
    9. Dim myData As New DataTable
    10. Dim vSQL As New String(Nothing)
    11. 'Daten aus der Datenbank lesen
    12. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    13. myData.Reset()
    14. vSQL = "SELECT * FROM Tabelle"
    15. conn.Open()
    16. myCommand.Connection = conn
    17. myCommand.CommandText = vSQL
    18. myAdapter.SelectCommand = myCommand
    19. myAdapter.Fill(myData)
    20. 'Datenbankabbild ist nun in mydata und wird in ein Datagridview übergeben
    21. Datagridview1.DataSource = myData
    22. conn.Close()
    23. End Sub
    24. 'Daten in die Datenbank schreiben
    25. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    26. myData.Reset()
    27. vSQL = "INSERT INTO Tabelle (Anrede, Vorname, Nachname) VALUES (@Anrede, @Vorname, @Nachname)"
    28. conn.Open()
    29. myCommand.Connection = conn
    30. myCommand.CommandText = vSQL
    31. 'Parameter für das Speichern festlegen
    32. myCommand.Parameters.AddWithValue("@Anrede", TextboxAnrede.Text)
    33. myCommand.Parameters.AddWithValue("@Vorname", TextboxVorname.Text)
    34. myCommand.Parameters.AddWithValue("@Nachname", TextboxNachname.Text)
    35. myAdapter.SelectCommand = myCommand
    36. myAdapter.Fill(myData)
    37. conn.Close()
    38. End Sub
    39. End Class

    Wobei zu sagen ist, das die Daten per Parameter in die Datenbank geschrieben werden, was das ganze sicherer vor ungewollten zugriffen macht.
    Um ein Update durchzuführen musst du den SQL-Befehl logischerweise ändern.
    Welchen du dabei anwenden musst, kannst du hier finden.
    Hier ist auch nochmal ein kleines Tutorial über die Verbindung zu MySQL-Datenbanken.
    wintoolz.de
    • wintoolz.KeyLocker - Programm zum sicheren Verwalten von Passwörten
    • wintoolz.CodeGallery - Datenbank für Codebeispiele veschiedener Programmiersprachen
    • wintoolz.Haushaltsbuch - Dient zum Auflisten der Aktivitäten ihrer Bankkonten

    Benutze auch du Ecosia
    Hallo,
    auch wenn es hier schon ne Weile steht, hätte ich dazu jedoch noch eine Frage bzw. ein Problem.

    Ich habe den Code übernommen, meine Serverdaten eingegeben.

    Nun wird jedoch mein Datagridview nicht gefüllt.
    Und wenn ich was in die BD schreiben möchte gehnt das nur so:

    1. Form öffnen
    2. Text in die Textboxen eingeben
    3. Button1 drücken
    4. Button2 drücken

    Dann wird auch, was in den Textboxen steht, in die DB geschrieben, allerdings nur einmal.
    Wenn ich dann einen weiteren Eintrag machen möchte, dann muss ich die Form schließen und dann wieder öffnen und Schritte 1-4 wiederholen.


    Edit:// wenn ich das Datagridview neu einlesn möchten und den Button1 drücke, dann kommt immer der Fehler das der Parameter für die Textbox schon übergeben wurde und das Prog stürzt ab.

    Könnt ihr mir bitte mal helfen?

    mfg
    Sebastian

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „beule1808“ ()

    Hi!

    Ich hab mir das mal angesehen, funktioniert!
    Aber wenn ich eine Suche so einbaue:

    VB.NET-Quellcode

    1. Dim myCommand As New MySqlCommand
    2. Dim myAdapter As New MySqlDataAdapter
    3. Dim myData As New DataTable
    4. Dim vSQL As New String(Nothing)
    5. Try
    6. myData.Reset()
    7. vSQL = String.Format("SELECT * FROM accounts WHERE {0} = '{1}';", ComboBox1.SelectedText, searchtxtbox.Text)
    8. myCommand.Connection = Conn
    9. myCommand.CommandText = vSQL
    10. myAdapter.SelectCommand = myCommand
    11. myAdapter.Fill(myData)
    12. 'Datenbankabbild ist nun in mydata und wird in ein Datagridview übergeben
    13. DataGridView1.DataSource = myData
    14. Catch mysqlex As MySqlException
    15. MsgBox(mysqlex.ToString, MsgBoxStyle.Exclamation)
    16. End Try


    Bekomme ich immer die wunderschön detailreiche und zeilenlange MySQLException..
    LG
    Merio