Combobox mit DataSet - Problem
-
Hi,
Mein Problem ist folgendes:
Ich habe 2 Comboboxen und ein (bereits gefülltes) DataSet mit 2 Tabellen.
Die 1. Combobox enthält die Tabelle mit Primary Key
Die 2. eine Tabelle mit einem Foreign Key auf die 1. Tabelle.dsDaten.Relations.Add("TaetigkeitenFK",dsDaten.Tables["Projekte"].Columns["ProjektID"],dsDaten.Tables["Taetigkeiten"].Columns["ProjektID"]);
Bei Auswahl in der 1. Box, sollen sich die Elemente der 2. Box anpassen.
Hier der Code:
this.comboBox_Projekt.DataSource = DBControl.dsDaten;//.Tables["Projekte"]; this.comboBox_Projekt.DisplayMember = "Projekte.Projektname"; this.comboBox_Taetigkeit.DataSource = DBControl.dsDaten;//.Tables["Taetigkeiten"]; this.comboBox_Taetigkeit.DisplayMember = "Taetigkeiten.Taetigkeit"; // wenn aktiv, dann alle Elemene angezeigt //this.comboBox_Taetigkeit.ValueMember = "Taetigkeiten.TaetigkeitID"; //this.comboBox_Taetigkeit.DataBindings.Add("SelectedValue",dsView,"Projekte.ProjektID"); // Erzeugt Fehler
Kann mir jemand nen Tipp geben?
mfg
-
So schlecht sieht der Ansatz auf den 1. Blick doch garnicht aus ( mit dem Auskommentierten ). Was kommt den für ein Fehler?
-
Eben keiner. Er zeigt mir jetzt aber alle Elemente an ohne auf die 1. Combobox zu reagieren.
Wenn ich das auskommentierte hinzufüge, dann kann ich es compilieren, aber bekomme am Start des Programms folgende Errormeldung:
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.************** Exception Text **************
System.ArgumentException: Cannot create a child list for field Projekte.
at System.Windows.Forms.BindingContext.EnsureListManager(Object dataSource, String dataMember)
at System.Windows.Forms.BindingContext.UpdateBinding(BindingContext newBindingContext, Binding binding)
at System.Windows.Forms.Control.UpdateBindings()
at System.Windows.Forms.Control.OnBindingContextChanged(EventArgs e)
at System.Windows.Forms.ListControl.OnBindingContextChanged(EventArgs e)
at System.Windows.Forms.Control.CreateControl()
at System.Windows.Forms.Control.OnVisibleChanged(EventArgs e)
at System.Windows.Forms.Control.WmShowWindow(Message& m)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ComboBox.WndProc(Message& m)
at System.Windows.Forms.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)Ich nehm mal an, dass ich das DataBinding falsch geschrieben hab, jedoch weiß ich nicht, wie ich es ändern muss. In der 2. Tabelle ist genau wie in der 1. ein "ProjektID" vorhanden. Ich les es aber in String ein, kann das der Fehler sein? Benötige ich für eine Ralation einen Typ int?