Mehrere DB-Felder gemeinsam in DataGridViewComboBox anzeigen

  • VB.NET

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

    Mehrere DB-Felder gemeinsam in DataGridViewComboBox anzeigen

    Hallo,

    ich habe, wie sich das gehört, in der DB Nachnamen und Vornamen in getrennten Feldern. Im Formular kann der User mit Hilfe einer DataGridViewComboBox (DisplayMember = Name und ValueMember = ID) den gewünschten Namen auswählen. Da in der DB viele Vor- und Nachnamen mehrfach vorkommen, würde ich in der Combobox gerne beides anzeigen (so etwa in der Form "Nachname, Vorname") . Wie geht denn sowas?

    Danke
    Auslesen (Alles)

    SQL-Abfrage

    1. SELECT * FROM xy


    VB.NET-Quellcode

    1. DO while reader.read
    2. Textbox1.Text = reader("Name")
    3. Loop
    4. reader.close
    5. con.close


    das sind 2 Beispiele wie es geht

    das sind 2 Beispiele wie es geht



    Sorry, aber was diese Beispiele mit meiner Frage zu tun haben, erschließt sich mir nicht.

    Ich vergaß vielleicht zu erwähnen, das die DataGridViewComboBoxColumn bereits an die Datenquelle gebunden ist (ValueMember = PersonalID), mir aber statt der ID den Nachnamen anzeigt (DisplayMember = NName). Wie kann ich da jetzt Vor- und Nachnamen in einer DataGridViewComboBoxColumn anzeigen?
    Machst du das über den Designer ?
    Per Hand hatte ich mal ein Beispiel gelesen, da wurde dann im SELECT Befehl eine neue Spalte mit "Nachname, Vorname" erstellt.

    VB.NET-Quellcode

    1. SELECT ..., (Name & ', ' & Vorname) AS [Name] FROM ...


    Das sollte man dann auch binden können. Allerdings weiß ich nicht, wie man das mit dem Disigner machen kann.
    @HerrFrie: Ja, ich mache das mit dem Designer. Bin schon den ganzen Nachmittag am googlen - bisher ohne Erfolg. Wenn ich nich bald fündig werde werde ich in der DB noch ne Spalte mit dem kombinierten
    Namen-Vornamen Paar anlegen. Datenredundanz hin oder her. :whistling: Bitte nicht hauen.

    Das ist die Sch***e, das VB.NET keine mehrspaltigen Comboboxen unterstützt. Mit VBA geht das ja problemlos.

    gonzo16 schrieb:

    Wenn ich nich bald fündig werde werde ich in der DB noch ne Spalte mit dem kombinierten
    Namen-Vornamen Paar anlegen. Datenredundanz hin oder her.

    Fast genau das würde ich dir vorschlagen.

    Du brauchst diese Spalte jedoch nicht in der DB anzulegen, sondern kannst sie als "berechnete Spalte" im Dataset anlegen. Berechnete Spalten sind ReadOnly, und haben keine Auswirkung auf die Datenbank.
    BS sind Prozessdaten und gefährden auch nicht die Datenredundanz.

    gugge DataExpressions
    berechnete Spalte im DataSet. Gute Idee!! Das ist doch genau die Lösung wonach ich gesucht habe. Mal sehn wie ich das hinkriege. Das wird dann meine Arbeit für morgen.

    Deine DataExpressions hab ich mir schon mal angesehen, aber nur oberflächlich. Jetzt werd ichs mal genauer angehen. War mir schon klar, dass ich das früher oder später brauchen werde, allerdings hab ich dabei an echte Berechnungen gedacht. Das man das auch für String-"Berechnungen" nutzen ist ja eigentlich logisch.
    Ja, ich habs auch gerade ausprobiert. Ist wirklich total einfach und genau das wonach ich gesucht habe. Habe mir auch mal die Dokumentation von MS dazu durchgelesen - da eröffnen sich mir ja bisher ungeahnte Möglichkeiten. Ich denke ich werde diese berechneten Spalten im DataSet wohl noch öffters gebrauchen.

    Danke @ErfinderDesRades für einen weiteren Super-Tipp.