我正在Visual Studio 2010中開發一個簡單的Windows Forms桌面應用程序。它連接到兩表數據庫,顯示值。用戶更改表格中的一些值,並且應該保存它們。我有兩個表格:Banks
和Orders
。 Orders
與Banks
(它有一個bank_id
字段)有外鍵關係。
我創建了一個Form
,我創建了一個Dataset
,並通過拖放VS2010的Server Explorer
面板中的兩個表來添加數據。
然後,我通過將Orders
拖放到Form
上,將DataGridView
添加到我的Form
中。
這是一個工作項目,我可以改變數據,保存它,並將其保存在數據庫中。DataGridView ComboboxCell不會將其值保存到數據庫中
唯一令人擔心的是,將銀行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
,但它有2個問題:
1.當啓動形式,在該列(僅在列),所有值都是空的(而不是從數據庫中把他們)。
2.當我更改某個日期(例如添加一行)時,除Bank
列中的值之外的所有值均成功保存到數據庫。但Bank
列中的值不會保存。
我認爲Bank
列與我的數據(Dataset
或類似的東西)的綁定有些問題。
有人能幫我解決這個問題嗎?我應該如何將Bank
列中的所有數據保存到數據庫?
您可以隱藏bank_id列而不是刪除它。您可以將列的可見屬性設置爲false。 – suds