簡體   English   中英

DataGridView ComboboxCell不會將其值保存到數據庫

[英]DataGridView ComboboxCell doesn't save its value to database

我正在Visual Studio 2010中開發一個簡單的Windows Forms桌面應用程序。它連接到2表數據庫,顯示值。 用戶更改表中的某些值,應將其保存。
我有兩個表: BanksOrders OrdersBanks有外鍵關系(它具有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表具有字段iddisplay_name

它可以作為ComboBoxCell很好地工作,但是有兩個問題:
1.啟動表單時,該列(僅該列)中的所有值均為空(而不是從數據庫中獲取它們)。
2.當我更改某個日期(例如,添加一行)時,除“ Bank列中的值以外的所有值均成功保存到數據庫中。 但是不會保存“ Bank列中的值。

我認為Bank列與我的數據( Dataset類)的綁定存在問題。
有人可以幫我解決問題嗎? 如何將“ Bank列中的所有數據也保存到數據庫中?

要填充初始值,請將屬性DataPropertyName設置為DB列名。

colFilterType.DataPropertyName = "id"

這也應該解決您的更新問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM