Laden...

Comboboxen mit DataTable befüllen

Erstellt von raised.fist vor 13 Jahren Letzter Beitrag vor 13 Jahren 1.615 Views
R
raised.fist Themenstarter:in
4 Beiträge seit 2011
vor 13 Jahren
Comboboxen mit DataTable befüllen

Hallo,

Ich habe ein etwas komplexeres Problem. Und zwar bekomme ich von einem MySql Datenbankserver ein DataTable mit den Spalten "ID", "Titel", "Name" und "Vorname".

Ich habe 3 Comboboxen in meiner Form die mit den Daten dieser DataTable gefüllt werden soll.

Mit folgendem Code klappt das auch soweit ganz gut. Die ComboBoxen werden befüllt und wenn ich einen Namen auswähle, werden in den anderen ComboBoxen automatisch die dazugehörigen Vornamen und Titel ausgewählt.


[csharp]table = Manager.abfrage("SELECT * from tabdozent");
            Name.DataSource = table;               
            Vorname.DataSource = table;
            Titel.DataSource = table;
            
            Name.DisplayMember = "Name";
            Vorname.DisplayMember = "Vorname";
            Titel.DisplayMember = "Titel";[/csharp]

Das Problem was ich nun habe, das in der ComboBox mit den Titel nun doppelte Einträge stehen ("Dr.", "Prof") da einige Personen den gleichen Titel besitzen. Gibt es eine Möglichkeit diese doppelten Einträge in der Combobox auszublenden o.ä. und trotzdem die Abhängkeiten untereinander zu bewahren?

Am besten wäre es, wenn man zb "Dr." als Titel auswählt, dass in den anderen ComboBoxen nur die Personen angezeigt werden, die auch Dr. sind. Oder anderes Beispiel, dass wenn man einen Vornamen auswählt, dass in den anderen ComboBoxen alle Personen aufgeführt werden die den ausgewählten Vornamen besitzen (Alle Personen die "Peter" heißen...)

Lässt sich soetwas realisieren und wenn ja, wie?

G
538 Beiträge seit 2008
vor 13 Jahren

Du wirst deine DataSource anpassen müssen indem du zum Beispiel mit LinQ table.Select(t => t.Title).Distinct() verwendest (dabei steht Distinct für "jeden Eintrag nur einmal)

Der Vorteil der Klugheit liegt darin, dass man sich dumm stellen kann - umgekehrt ist das schon schwieriger (K. Tucholsky)
Das Problem mit Internet-Zitaten ist, dass sie oftmals zu unrecht als authentisch angenommen werden. (K. Adenauer)

49.485 Beiträge seit 2005
vor 13 Jahren

Hallo raised.fist,

ich denke nicht, dass man das mit DataBinding hinbekommt, zumindest nicht so einfach. Aber es sollte sich mit überschaubarem Aufwand realisieren lassen, selbst auf SelectedIndexChanged zu reagieren und die jeweiligen Daten selbst in die anderen ComboBoxen zu füllen.

herbivore