Daten aus mehreren Tabellen in einem DGV

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von Cell.

    Daten aus mehreren Tabellen in einem DGV

    Hallo zusammen

    Ich habe eine kleine Datenbank die ähnlich einem Forum aufgebaut ist. Es gibt eine übergeordnete Tabelle mit einträgen und eine untergeordnete Tabelle mit benutzern.

    In der Tabelle einträge habe ich die spalte benutzerID die auf die spalte benutzerID in der Tabelle benutzer

    Nun habe ich wenn ich die Tabelle einträge in mein DGV ziehe immer die benutzerID stehen. Stattdessen möchte ich aber gern in meinem DGV die Spalte benutzername stehen haben. Wie kann ich soetwas am sinnvollten umsetzen?

    mfg Cell
    ALso ich kann in menem Datagridview diese Property nirgends finden. Ich würde das ganze gern so darstellen:


    eintragsid | eingtragsüberschrift | benutzername( aus der benutzer spalte) | eintragsinhalt


    Derzeit habe ich:

    eintragsid | eingtragsüberschrift | benutzerID | eintragsinhalt

    Ich kann aber in den Spaltenpropertys nichts finden bzw die Property DisplayMember kenne ich nur zb von einem Listview
    @Cell:
    Aber hier musst du darauf achten, dass die Benutzer zu den Einträgen geändert werden können.
    Wenn du das nicht willst, musst du in der DataGridViewComboBoxColumn die Eigenschaft DisplayStyle = Nothing setzen.

    Es gibt noch eine weitere Möglichkeit (die bessere ist aber die obige, diese hier braucht zusätzlichen UserCode):
    Füge deinem DGV eine ungebundene Spalte hinzu und benenne sie mit einen sinnigen Spaltennamen und benutze das DGV.CellFormatting-Ereignis:

    VB.NET-Quellcode

    1. Private Sub DataGridView1_CellFormatting(sender As Object, e As DataGridViewCellFormattingEventArgs) Handles DataGridView1.CellFormatting
    2. With DataGridView1
    3. If .Columns(e.ColumnIndex) IsNot DeineUngebundeneColumn Then Return
    4. Dim rv = DirectCast(.Rows(e.RowIndex).DataBoundItem, DataRowView)
    5. If rv Is Nothing Then Return
    6. e.Value = DirectCast(rv.Row, TabelleEintraegeRow).TabelleBenutzerRow.BenutzerName
    7. End With
    8. End Sub

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