9
如何讓WPF DataGrid將更改保存回數據庫?如何獲取WPF DataGrid以保存更改返回到數據庫?
我已經將DataGrid控件綁定到DataTable對象,並用一個非常簡單的SELECT查詢來填充該表,從而獲取一些基本信息。數據在控制中顯示得很好。
但是,當我使用控件編輯數據時,更改不會推回到數據庫。
有誰知道我錯過了什麼?
如何讓WPF DataGrid將更改保存回數據庫?如何獲取WPF DataGrid以保存更改返回到數據庫?
我已經將DataGrid控件綁定到DataTable對象,並用一個非常簡單的SELECT查詢來填充該表,從而獲取一些基本信息。數據在控制中顯示得很好。
但是,當我使用控件編輯數據時,更改不會推回到數據庫。
有誰知道我錯過了什麼?
執行更新
當用戶編輯數據網格內的客戶數據,結合的存儲器內數據表被相應地更新。但是,這些更新不會自動寫回數據庫。取決於應用程序的要求,由開發人員決定何時將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);
}
這是很有用。謝謝! – Giffyguy 2009-07-21 14:52:51