2012-11-13 33 views
3

在我的數據庫中,我有一個表Cars,其中包含(除其他外)idCategory列,這是一個外鍵。該外鍵指的是類別表中包含該類別描述的idCategory。綁定組合框 - 處理外鍵

現在在我的C#應用​​程序中,我得到了一個用於添加新車的表單。有一個組合框來選擇類別。

comboboxCat.DataSource = datatable1; 
comboboxCat.DisplayMember = "categoryDescription"; 
comboboxCat.ValueMember = "idCategory"; 

所以我ComboBox的數據源設置爲包含類別表的數據DataTable中,我設定的ID作爲valueMember和描述爲DisplayMember。

我也有一個包含表Cars的DataSet。 我想要做的是在Combobox的值發生變化時自動更新DataSet中的Car數據。我不知道如何綁定它。在datagridview中很容易,因爲我只需設置DataGridViewComboBoxColumn的DataPropertyName。但是在普通的ComboBox中沒有這些屬性。在此先感謝

+0

做什麼?在表單加載中,您可以在組合框上顯示數據,當組合框索引更改時,您可以更新數據集,這會對您有幫助嗎? – bonCodigo

+0

我想與數據集選擇的值的組合框綁定,所以如果我改變組合框的值反映在DataSet中的變化,反之亦然 – user1820392

+0

然後,你可以,打電話給你的連接字符串,數據庫開放,綁定數據集組合框在的Form_Load 。接下來在ComboBox.SelectedIndexChanged事件中,您可以使用在Commobo框中更改的值將INSERT字符串設置爲表格。 [請檢查此問題](http://social.msdn.microsoft.com/Forums/zh/winformsdatacontrols/thread/7d447ecc-5506-429b-907b-bbaf43313be6)另請閱讀有關使用雙向數據報告的一些問題綁定爲組合框。 – bonCodigo

回答

1

我相信你的IdCategory領域從汽車DataTable添加到組合框的綁定的SelectedValue。

+0

我只是不明白你爲什麼不接受我的答案......你也可以在設計器上做DataBinding,也不需要聽任何事件。 – nflash

0

終於找到了我一直在尋找:http://blogs.msdn.com/b/bethmassi/archive/2007/04/25/tips-on-related-data-binding-and-comboboxes.aspx

我的答案是使用數據綁定,使鏈接你想從組合框更新數據集或反之亦然

+0

很高興你找到一篇你可以參考的文章。到目前爲止我們所談論的都是基於DataBinding :)最後你可以注意到這篇文章本身使用Form_Load()和SelectedIndexChanged()事件;)祝你好運! – bonCodigo