当前位置: 首页 > 面试题库 >

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

鲁浩渺
2023-03-14
问题内容

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

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

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

有人知道我在想什么吗?


问题答案:

执行更新

当用户在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);
}


 类似资料:
  • 问题内容: 我正在使用ui网格编辑单元格功能。我需要使用rest api将编辑后的单元格值更新到数据库。另外,我如何获得在控制器中选择的行的列表。 我的工作代码 柱塞 问题答案: 将以下内容添加到您的控制器: 您拥有有关(在中)编辑哪一列以及(在中)单元格的实际值的所有信息。 所有你现在要做的就是打电话给你的REST API(以避免不必要的流量,你也可以比较,以看是否真的内容变更)。 您不需要重新

  • 问题内容: 我有一个具有表的应用程序,当您单击表中的项目时,它会使用其数据(FieldGroup)填充一组文本字段,然后您可以选择保存更改, 我想知道如何保存更改用户对我的postgres数据库进行的更改 。我正在为此应用程序使用vaadin和hibernate模式。到目前为止,我已经尝试做 我努力了 而且我也尝试过 最后两个给我以下错误 问题答案: 我已经弄清楚了如何对数据库进行更改,下面是一些

  • 我尝试从Socket TCP获取数据以附加到数据帧我收到数据并将它们执行到Seq(),但当我使用foreach将它们附加到数据帧时出现问题这是我的代码: 这是我跑步时的问题 Java语言组织中的lang.NullPointerException。阿帕奇。火花sql。SQLImplicits。localSeqToDatasetHolder(SQLImplicits.scala:231),位于Cl.C

  • 我正在本地机器中将spark数据集保存为拼花文件。我想知道是否有任何方法可以使用某种加密算法对数据进行加密。我用来将数据保存为拼花文件的代码如下所示。 <代码>数据集。写入()。模式(“覆盖”)。拼花地板 我看到了一个类似的问题,但我的查询不同,因为我正在写入本地磁盘。

  • 问题内容: 我的TranslationDetail组件在打开时会传递一个ID,并基于此ID在类构造函数中触发外部api调用,以接收到该状态的数据,并将此数据显示在TranslationDetail上。 如果我手动输入网址,则一切正常。万一我想使用react- router例如显示url下面的下一项时,它确实发生了变化,但是api调用未触发,并且数据将保持不变。 请记住,我是一个初学者。发生这种情况

  • 我有下面的代码,首先检查记录,如果找到,删除该记录并刷新对数据库的更改。但是,当我调试时,我看到当调试器点击下一个代码块时,它没有反映对数据库的更改()。 那么,这种做法错在哪里呢?