verschiedene Spalten als DisplayMember aus DataSet

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    verschiedene Spalten als DisplayMember aus DataSet

    Hallo Leute,

    ich bekomme es einfach nicht gebacken und bauch eure Hilfe.

    Zur Sache: Ich habe eine Dataset-Tabelle("tblPlayers") mit 3 Spalten ("Uid", "Nachname" und "Vorname").

    Wie schaffe ich es nun, dass ich in einer Combobox "Vorname" und "Nachename" zur Auswahl angezeigt bekomme?

    Mein Ansatz bisher ist: (Mittlerweile bezweifle ich das das der richtige ist ?( , aber irgendwie finde ich auch nicht wirklich etwas passendes im INet dazu)

    VB.NET-Quellcode

    1. cmbPlayer2.DataSource = DsDataSet.Tables("tblPlayers")
    2. cmbPlayer2.ValueMember = "Uid"
    3. cmbPlayer2.DisplayMember = ???


    Ich Dank euch mal im Voraus, VG Michael
    Hallo,

    eine Möglichkeit wäre, dir eine temporäre Anzeigespalte zu generieren. Hier ist mal ein Codebeispiel aus meiner Anwendung:

    VB.NET-Quellcode

    1. strAnzeige = "Objekt + ' (' + IsNull(Strasse,'') + ' ' + IsNull(Hausnummer,'') + ' ' + IsNull(PLZ,'') + ' ' + IsNull(Ort,'') + ')'"
    2. Me.dbLeiKaDataSet.tblSdObjekt.Columns.Add("ObjektAnzeige", GetType(String), strAnzeige)
    3. Me.IDObjektComboBox.DisplayMember = "ObjektAnzeige"


    Also in deinem Fall wäre das:

    VB.NET-Quellcode

    1. Dim strAnzeige As String = "Vorname + ' ' + Nachname"
    2. DsDataSet.Tables("tblPlayers").Columns.Add("VornameNachname", GetType(String), strAnzeige)
    3. cmbPlayer2.DisplayMember = " VornameNachname"

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

    Michl schrieb:

    :thumbsup: Perfekt.

    Ansichtssache.
    1. Alles untypisiert. Gibt's dafür nen guten Grund?
    2. Könnte man auch im tDS-Designer eine Spalte machen, die automatisch Vorname und Nachname kombiniert und als Datenquelle dienen kann.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.

    VaporiZed schrieb:


    2. Könnte man auch im tDS-Designer eine Spalte machen, die automatisch Vorname und Nachname kombiniert und als Datenquelle dienen kann.


    Also ich kenne das Konstrukt von Michl nicht. Bei mir hängt hinter dem DataSet eine MySQL Datenbank. Und damit hatte ich nur Probleme wenn es im DataSet oder in der Datenbank eine berechnete Spalte gab.
    Eine ähnliche Frage atte ich vor mehreren Monaten hier auch geäußert, da wurde mir diese Lösung präsentiert.
    Hallo Leuts,

    Ich habe z.Z. eine Tabelle im DataSet, die ich beim Start des Programms erzeuge und diese mit Daten aus einer XML-Datei fülle.
    Klar könnte ich den zusammengesetzten Namen z.B. auch schon im XML speichern und abrufen.
    Aber ich brauche den zusammengesetzen Namen nur einmal zur Anzeige in 2 Comboboxen, danach arbeite ich mit der ID der Personen weiter.

    Ich habe den Vorschlag von AndPod bereits wie folgt implementiert und es funzt problemlos!

    VB.NET-Quellcode

    1. 'Eine weitere Splalte mit "Nach- und Vorname" in der Tabelle "tblPlayers" zur Anzeige in der ComboBox erzeugen
    2. Dim sAnzeige As String = "Nachname + ' ' + Vorname"
    3. DsDataSet.Tables("tblPlayers").Columns.Add("FullName", GetType(String), sAnzeige)
    4. dvPlayer1.Sort = ("FullName ASC")
    5. dvPlayer2.Sort = ("FullName ASC")
    6. cmbPlayer1.DataSource = dvPlayer1
    7. cmbPlayer1.ValueMember = "Uid"
    8. cmbPlayer1.DisplayMember = "FullName"
    9. cmbPlayer2.DataSource = dvPlayer2
    10. cmbPlayer2.ValueMember = "Uid"
    11. cmbPlayer2.DisplayMember = "FullName"


    Nochmals vielen Dank für die schnelle Hilfe und Lösung :thumbsup:
    VG, Michl