DataGridView mit Daten aus einer MySQL Datenbank aus dem Internet füllen und bearbeiten

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von Merio.

    DataGridView mit Daten aus einer MySQL Datenbank aus dem Internet füllen und bearbeiten

    Moin Moin,

    ich hab es jetzt geschafft eine Verbindung zu meiner MySQL-Datenbank auf meinem Webserver und die Daten in ein Listview einzulesen.

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. Dim con As New Odbc.OdbcConnection
    3. Dim cmd As New Odbc.OdbcCommand
    4. Dim reader As Odbc.OdbcDataReader
    5. con.ConnectionString = "DSN=odbc_top10"
    6. cmd.Connection = con
    7. cmd.CommandText = "select * from anzeige"
    8. Try
    9. con.Open()
    10. reader = cmd.ExecuteReader()
    11. lstTab.Items.Clear()
    12. Do While reader.Read()
    13. lstTab.Items.Add(reader("kdnr") & " # " _
    14. & reader("posi") & " # " _
    15. & reader("posialt") & " # " _
    16. & reader("dbregion") & " # " _
    17. & reader("unterbranche"))
    18. Loop
    19. reader.Close()
    20. con.Close()
    21. Catch ex As Exception
    22. MsgBox(ex.Message)
    23. End Try
    24. End Sub


    Wie bekomme ich es jetzt aber hin die Daten aus der Tabelle "anzeige" in einem DataGridView anzuzeigen und dass wenn ich dort eingaben verändere diese auch wieder gespeichert werden?

    Vielen Dank im Voraus

    Viele Grüße aus Hamburg
    Schay
    Statt des Readers solltest du ein DataTable und einen DataAdapter verwenden.

    Hier ein Beispiel was ich mit SQLite verwende:

    VB.NET-Quellcode

    1. Dim table As New DataTable
    2. Dim DBConn As New SQLiteConnection()
    3. Dim DBComm As SQLiteCommand
    4. Dim Adapter As New SQLiteDataAdapter
    5. Dim dgw As New DataGridView
    6. DBConn.ConnectionString = "Data Source=" & ofd.FileName & ";"
    7. Try
    8. DBConn.Open()
    9. Catch ex As Exception
    10. MessageBox.Show(ex.Message, "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Error)
    11. Exit Sub
    12. End Try
    13. DBComm = DBConn.CreateCommand
    14. DBComm.CommandText = "SELECT * FROM DATA"
    15. Adapter.SelectCommand = DBComm
    16. Adapter.Fill(table)
    17. dgw.DataSource = table


    Dann sollten deine Daten auch in dem DataGridView sein.

    Schay schrieb:

    und dass wenn ich dort eingaben verändere diese auch wieder gespeichert werden?


    Das bearbeiten und danach speichern hab ich so gelöst:

    Du brauchst einen Button um die Bearbeitung abzuspeichern(SaveButton)

    VB.NET-Quellcode

    1. Public Class DGVEntry
    2. Public RowIndx As Integer
    3. Public ColumnIndx As Integer
    4. Public oldVal As String
    5. End Class
    6. Dim entr As New List(Of DGVEntry)
    7. Dim ent As New DGVEntry
    8. Private Sub DataGridView1_CellBeginEdit(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellCancelEventArgs) Handles DataGridView1.CellBeginEdit
    9. ent = New DGVEntry
    10. ent.oldVal = DataGridView1.Rows(DataGridView1.SelectedCells(0).RowIndex).Cells(0).Value.ToString
    11. ent.RowIndx = DataGridView1.SelectedCells(0).RowIndex
    12. ent.ColumnIndx = DataGridView1.SelectedCells(0).ColumnIndex
    13. entr.Add(ent)
    14. End Sub
    15. Private Sub DataGridView1_CellEndEdit(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellEndEdit
    16. SaveButton.Enabled = True
    17. End Sub
    18. Private Sub SaveButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SaveButton.Click
    19. Dim cmdTxT As String = Nothing
    20. For i = 0 To entr.Count - 1
    21. Dim tbl As String = SelectedTable
    22. Dim newVal As String = DataGridView1.Rows(entr(i).RowIndx).Cells(entr(i).ColumnIndx).Value
    23. If newVal = "True" Then newVal = 1
    24. If newVal = "False" Then newVal = 0
    25. Dim oldVal As String = entr(i).oldVal
    26. Dim ValClmn1 As String = DataGridView1.Columns(entr(i).ColumnIndx).HeaderText
    27. Dim ValClmn2 As String = DataGridView1.Columns(0).HeaderText
    28. cmdTxT &= "UPDATE " & tbl & " SET " & ValClmn1 & "='" & newVal & "' WHERE " & ValClmn2 & "='" & oldVal & "';" & vbNewLine
    29. Next
    30. Try
    31. Dim mycommand As New MySqlCommand(cmdTxT, Conn)
    32. mycommand.ExecuteNonQuery()
    33. entr.Clear()
    34. cmdTxT = Nothing
    35. SaveButton.Enabled = False
    36. Catch mysqlex As MySqlException
    37. MsgBox(mysqlex.Message.ToString, MsgBoxStyle.Critical)
    38. Catch ex As Exception
    39. MsgBox(ex.Message.ToString, MsgBoxStyle.Critical)
    40. End Try
    41. End Sub
    LG
    Merio