簡而言之:我有一個DataSet,其中包含多個DataTable,它們通過多個DataRelations連接。我在這個DataSet上使用數據綁定創建了一個表單,並且可以說它非常複雜。數據綁定,包含數據的數據集以及從數據庫刷新單個DataTable
場景是下一個:窗體的主要目的是插入一條新記錄。要插入它,必須設置各種親子關係。對於數據綁定,這一切都可以正常工作,但問題在於:當用戶想爲這些父子關係中的一個輸入新的「孩子」時,新的表單打開,他輸入它,yada yada yada,作品。麻煩的是 - 我應該如何將新數據恢復到原始形式,以便出現在父子組合框中?
我知道的一種方法是刷新整個表單;但我正在尋找一種解決方案來刷新包含該數據的DataTable。我試圖獲得來自DB新鮮數據的新數據表,並在DataSet中的DataTable合併,但它不工作:「子行有多個家長」異常被拋出:
// basically just a Select * using dataadapter,
// nothing programmatically added
DataTable table = tableModule.GetPlainTable();
existingDataSet.Tables["tableName"].Merge(table);
等效我想要做的一個例子是有一個Order窗體,其上帶有Customer組合框。在組合框的右側,有一個「添加」按鈕,打開一個新的「添加客戶」表單。在DB中,「Customers」表與「Cities」表有關,並且該數據在Orders表單中也被鏈接在數據綁定中...
編輯:我可以想到的一種解決方案是「手動」循環遍歷新的DataTable,並找到DataSet中原始DataTable中沒有的所有行,但我不確定這是否可行...
任何幫助/建議/解釋/推向正確的方向將不勝感激:)