2012-03-28 79 views
1

我正在與SQL Server,Windows窗體和數據集的項目工作。 我們假設我有一個帶有datagridview的主窗體,以及一些綁定源綁定到數據集中的數據表的其他win窗體控件。從這個表格我希望打開另一個表格,我希望編輯以前表格中的一些數據。 我用showdialog方法等待窗體關閉,然後我希望在主窗體(當前窗體)重新同步數據。C#表單數據集獲取子表單關閉後的數據

我用this.mydataset.AcceptChanges(); this.mydataset.GetChanges()和他們沒有接縫做這項工作,我有點卡住了。

任何想法?

+0

因爲DataSet是一個引用類型,並且只傳回相同內存的引用。當你的孩子形式關閉時,它會失去焦點(生活時間/垃圾收集),因此所做的更改將會丟失。我建議將主(父)表單數據集傳遞給子表單並更改其內容。 – Zenwalker 2012-03-28 05:54:31

回答

0

Dataset從父窗體傳遞給子窗體的構造函數作爲參數,並在指向(初始化)該構造函數參數的子窗體中保留表單級Dataset變量。

對子表單中的數據集進行更改,並確保不會丟棄此子表單Dataset變量(指向父表單中的相同數據集變量)。

接受子窗體AcceptChanges()方法,當你的孩子窗體關閉,重新綁定父窗體的網格/控制與存在於母體形式的原始數據集和變化將是在父母可見的數據集的變化。