2009-07-21 82 views
9

如何讓WPF DataGrid將更改保存回數據庫?如何獲取WPF DataGrid以保存更改返回到數據庫?

我已經將DataGrid控件綁定到DataTable對象,並用一個非常簡單的SELECT查詢來填充該表,從而獲取一些基本信息。數據在控制中顯示得很好。

但是,當我使用控件編輯數據時,更改不會推回到數據庫。

有誰知道我錯過了什麼?

回答

16

執行更新

當用戶編輯數據網格內的客戶數據,結合的存儲器內數據表被相應地更新。但是,這些更新不會自動寫回數據庫。取決於應用程序的要求,由開發人員決定何時將DataTable的更改寫回到數據庫。例如,在某些情況下,您可能希望通過「提交」按鈕提交一批更改,或者您可能希望在用戶提交每一行編輯時更新數據庫。爲了支持這些,DataTable包含的行具有RowState屬性,該屬性指示它們是否包含應與數據庫同步的更改。同步過程很容易通過TableAdapter的Update方法實現。 網址: WPF DataGrid examples

下面的例子顯示了RowChanged和RowDeleted事件如何處理,以便在數據表狀態變化每個用戶改變行時間寫入到數據庫:

public CustomerDataProvider() 
{ 
    NorthwindDataSet dataset = new NorthwindDataSet(); 

    adapter = new CustomersTableAdapter(); 
    adapter.Fill(dataset.Customers); 

    dataset.Customers.CustomersRowChanged += 
     new NorthwindDataSet.CustomersRowChangeEventHandler(CustomersRowModified); 
    dataset.Customers.CustomersRowDeleted += 
     new NorthwindDataSet.CustomersRowChangeEventHandler(CustomersRowModified); 
} 

void CustomersRowModified(object sender, NorthwindDataSet.CustomersRowChangeEvent e) 
{ 
    adapter.Update(dataset.Customers); 
} 
+0

這是很有用。謝謝! – Giffyguy 2009-07-21 14:52:51

相關問題