一尘不染

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

sql

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

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

但是,当我使用控件来编辑数据时,所做的更改不会被推回到数据库中。

有人知道我在想什么吗?


阅读 144

收藏
2021-03-10

共1个答案

一尘不染

执行更新

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

下面的示例显示如何处理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);
}
2021-03-10