![]() |
Datenbank: MSSQL • Version: 2000 • Zugriff über: ADO.NET
Lookup Tabelle und Combobox
Ich krieg hier bald den Föhn, sag ich euch.
Ich möchte eigentlich was ganz einfaches machen. Ich habe eine Tabelle mit einigen Spalten, wovon eine auf eine andere Tabelle referiert. Die andere Tabelle ist also nichts weiter als eine Lookup Tabelle. Wie krieg ich das denn nun hin, um mir die möglichen Lookupwerte in einer ComboBox in C# anzuzeigen. Natürlich so, wenn ich den Wert ändere, der Wert in der Mastertabelle natürlich angepasst wird. In Delphi hätte ich da früher einfach ein DBLookupComboBox auf mein Form gelegt, Datasource und ListSource angepasst und gut war. In ADO.NET spiel mit den skurilsten Dingen run (DataRelations, DataBindings usw.), aber ich krieg das zum Verrecken nicht hin :wall: |
Re: Lookup Tabelle und Combobox
Wow... Nachdem der Morgen nun fast rum ist, hab ich endlich die Lösung gefunden, die ich natürlich nicht vorenthalten will.
Ich habe also 2 DataTable, dtMaster und dtLookup. In der dtMaster gibt es ein Feld ClassificationId, welches über einen Foreign in der DB an die LookupTabelle Classification gebunden ist. Diese Tabelle beinhaltet weiterhin eine Spalte Description, welche in meiner Combobox angezeigt werden soll. Dann geht das wie folgt:
Code:
Schritt 1 sorgt dafür, dass die Werte aus der Lookuptabelle dtLookup angezeigt werden. Damit aber jetzt auch beim Ändern eines Wertes in der Combobox, das Feld in der Mastertabelle geupdated wird, muss noch eine DataBinding angelegt werden. Genau das war meine Suche den halben Morgen lang, wie die auszusehen hat.
/* 1 */
cmbClassification.DataSource = dtLookup; cmbClassification.DisplayMember = "Description"; cmbClassification.ValueMember = "ClassificationId"; /* 2 */ cmbClassification.DataBindings.Add("SelectedValue", dtMaster, "ClassificationId"); Schritt 2 legt einfach in die Property SelectedValue der Combobox nix anderes als die Spalte ClassificationId aus der Mastertabelle dtMaster. Also wär ich nicht auf der Arbeit, und wäre es nicht noch morgens, dann wär aber jetzt mal locker ein Weizen fällig. :cheers: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:48 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz