[英]DataGridView ComboboxCell doesn't save its value to database
我正在Visual Studio 2010中開發一個簡單的Windows Forms桌面應用程序。它連接到2表數據庫,顯示值。 用戶更改表中的某些值,應將其保存。
我有兩個表: Banks
和Orders
。 Orders
與Banks
有外鍵關系(它具有bank_id
字段)。
我創建了一個Form
,創建了一個Dataset
並通過從VS2010的Server Explorer
面板中拖放兩個表向其中添加了數據。
然后,通過將表Orders
拖放到Form
,將DataGridView
添加到了Form
。
那是一個正在運行的項目,我可以更改數據,將其保存,然后將其保存在數據庫中。
唯一擔心的是,將銀行ID(而不是其名稱)放入表中很不方便。 我想在表中放一個ComboBoxCell
。
我使用可視化編輯器從Form
上的DataGridView
刪除了bank_id
列。 相反,我將以下代碼添加到Form
構造函數中:
public Form6()
{
InitializeComponent();
DataGridViewComboBoxColumn colFilterType = new DataGridViewComboBoxColumn();
colFilterType.HeaderText = "Bank";
colFilterType.DataSource = dataSet1.banks;
colFilterType.ValueMember = "id";
colFilterType.DisplayMember = "display_name";
colFilterType.ValueType = typeof(int);
ordersDataGridView.Columns.Add(colFilterType);
}
注釋: Banks
表具有字段id
和display_name
。
它可以作為ComboBoxCell
很好地工作,但是有兩個問題:
1.啟動表單時,該列(僅該列)中的所有值均為空(而不是從數據庫中獲取它們)。
2.當我更改某個日期(例如,添加一行)時,除“ Bank
列中的值以外的所有值均成功保存到數據庫中。 但是不會保存“ Bank
列中的值。
我認為Bank
列與我的數據( Dataset
類)的綁定存在問題。
有人可以幫我解決問題嗎? 如何將“ Bank
列中的所有數據也保存到數據庫中?
要填充初始值,請將屬性DataPropertyName
設置為DB列名。
colFilterType.DataPropertyName = "id"
這也應該解決您的更新問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.