如何获取WPF DataGrid以保存更改返回到数据库?

如何获取WPF DataGrid以保存更改返回到数据库?

问题描述:

如何让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); 
} 
+0

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