DataGridView Spalten und Zeilen auslesen

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von VB1963.

    DataGridView Spalten und Zeilen auslesen

    Hallo,

    ich habe hier ein Programm, welches eine Datenbank in ein DGV einfügt. In dieser Datenbank sind aber viele leere Spalten. Meine Aufgabe ist es, diese Spalten zu entfernen. Dafür habe ich folgendes bisher geschrieben.
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Imports MySql.Data.MySqlClient
    2. Public Class Form1
    3. Public servername As String
    4. Public datenbasis As String
    5. Public ID As String
    6. Public pw As String
    7. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles ButtonDaten.Click
    8. Einstellungen.Show()
    9. End Sub
    10. Private Sub ButtonVerbinden_Click(sender As Object, e As EventArgs) Handles ButtonVerbinden.Click
    11. Dim con As New MySqlConnection
    12. Dim cmd As New MySqlCommand
    13. Dim ada As MySqlDataAdapter
    14. Dim table As DataTable
    15. Try
    16. con.ConnectionString =
    17. "Server=" + servername + ";" +
    18. "Database=" + datenbasis + ";" +
    19. "Uid=" + ID + ";" +
    20. "Pwd=" + pw + ";"
    21. con.Open()
    22. Catch ex As MySqlException
    23. MsgBox(ex.Message)
    24. End Try
    25. 'Tabelle anzeigen
    26. Try
    27. cmd.Connection = con
    28. ada = New MySqlDataAdapter("select * from paintball.auftrag", con)
    29. table = New DataTable
    30. ada.Fill(table)
    31. DataGridView1.DataSource = table
    32. con.Close()
    33. Catch ex As Exception
    34. MsgBox(ex.Message)
    35. End Try
    36. Dim tableA As New DataTable
    37. tableA = DataGridView1.DataSource
    38. Dim spalten As Integer = DataGridView1.ColumnCount - 1
    39. Dim zeilen As Integer = DataGridView1.RowCount - 1
    40. 'spalten durchgehen
    41. For i As Integer = 0 To spalten
    42. Dim test As String = DataGridView1.Item(spalten, zeilen).ToString
    43. If Not test = String.Empty Then
    44. MsgBox("Hallo")
    45. End If
    46. Next
    47. End Sub
    48. End Class

    Das Ziel ist, wenn eine Spalte in irgendeiner Zelle einen Wert hat, wird diese nicht gelöscht. Allerdings komme ich bei der for-Schleife nicht weiter. Ich kann mir einfach nicht genau vorstellen, wie genau ich diese Umsetzen soll. Kann mir da jemand weiterhelfen?

    Grüße,
    Lukas

    In die Datenbankprogrammierung verschoben. ~Trade

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Trade“ ()

    Man fügt keine Datenbank in ei DGV ein...
    Ganz grob festgehalten:
    Du füllst die Daten von der DB in eine Tabelle eines Datasets und die Tabelle bindest du via Bindingsource an ein DGV...
    Die Bindingsource nimmst du her und filterst deine Daten nach Wunsch und visualisierst die gefilterten Daten im DGV...
    Du manipulierst deine Daten im DGV - mache das lieber gleich in der Tabelle...
    ich denke, konkret gefragt hatter nach der 2-dimensionalen Schleife, mit der er suchen muss, denn eine Tabelle ist ein 2-dimensionales Gebilde - in X-Richtung nennt man es "Spalte", in Y-Richtung "Zeile".
    und nun musserhalt die zeilen durchlaufen und pro zeile die Einträge in den Spalten zählen

    VB.NET-Quellcode

    1. For y = tableA.Rows.Count - 1 To 0 Step -1
    2. Dim rw = tableA.Rows(y)
    3. Dim entry = 0
    4. For x = 0 To tableA.Columns.Count - 1
    5. If rw(x).ToString <> "" Then entry += 1
    6. Next
    7. MessageBox.Show(String.Concat("row ", y, " hat ", entry, " Einträge"))
    8. Next

    So, dann aber Visual Studio - Empfohlene Einstellungen machen, weil das kann man ja nicht angugge ||