【问题标题】:How do I Get a WPF DataGrid to Save Changes Back to the DataBase?如何获取 WPF DataGrid 以将更改保存回数据库?
【发布时间】:2010-11-12 12:08:56
【问题描述】:

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

我已将我的 DataGrid 控件数据绑定到一个 DataTable 对象,并用一个非常简单的 SELECT 查询填充该表,该查询检索一些基本信息。数据在控件中显示得很好。

但是当我使用控件编辑数据时,更改不会被推送回数据库。

有人知道我错过了什么吗?

【问题讨论】:

    标签: sql wpf datagrid wpftoolkit


    【解决方案1】:

    执行更新

    当用户在 DataGrid 中编辑客户数据时,内存中绑定的 DataTable 会相应更新。但是,这些更新不会自动写回数据库。由开发人员根据应用程序的要求决定何时将 DataTable 的更改写回数据库。例如,在某些情况下,您可能希望通过“提交”按钮提交一批更改,或者您可能希望在用户提交每个行编辑时更新数据库。为了支持这些,DataTable 包含的行有一个 RowState 属性,该属性指示它们是否包含应该与数据库同步的更改。通过 TableAdapter 的 Update 方法可以轻松实现同步过程。 网址: WPF DataGrid examples

    以下示例显示了如何处理 RowChanged 和 RowDeleted 事件,以便在每次用户更改行时将 DataTable 状态的更改写入数据库:

    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);
    }
    

    【讨论】:

      猜你喜欢
      • 2012-06-25
      • 2011-12-13
      • 1970-01-01
      • 2017-08-21
      • 2018-01-19
      • 2010-12-24
      • 2022-12-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多