winforms - 如何在更新 Datagridview 时找到基础数据表中已更新的行?

标签 winforms data-binding ado.net datagridview bindingsource

这就是我想要实现的目标:

  1. 使用非数据库源的数据填充数据表
  2. 此表使用 BindingSource 绑定(bind)到 DataGridView
  3. DataGridView 由用户更新,因此某些单元格现在具有新值。
  4. 因为表绑定(bind)到 datagridview,所以它的值会更新。

如何仅获取网格/数据表中更新的行(已编辑的行)?

我已经尝试过:

DataRow[] updatedRows = 
              _table.Select(null, null, DataViewRowState.ModifiedCurrent);

但这总是返回 0 行。有没有办法只获取修改后的行?

最坏的情况:

  • 保留原始表格的副本
  • 从 datagridview 数据源获取新表
  • 比较所有行。

谢谢!

最佳答案

这个怎么样:

DataTable changedRecordsTable = dataTable1.GetChanges();

您可以在 How to: Retrieve Changed Rows 找到更多详细信息

关于winforms - 如何在更新 Datagridview 时找到基础数据表中已更新的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3336776/

相关文章:

c# - CheckedListBox 检查列表项属性绑定(bind)到类中的字段

WPF 数据绑定(bind)

c# - 可以将单独的日期和时间字段绑定(bind)到 C# 中的单个 DateTime 吗?

oracle - 从 ADO.NET 调用存储过程时,不能将类型为 NVarChar 的 OracleParameter 与输出的 ParameterDirection 一起使用

c# - 为什么 C# 时分号不能放在 OracleCommand 的 CommandText 中

c# - 如何使用 ADO.NET 和存储过程在数据库中保存复杂的 C# 对象?

c# - 如何在 WinForms 中等待信号同时监听事件?

c# - Entity Framework 代码优先数据库不更新

C# : How to design a UI that couples to a dynamically generated object?

c# - 如何使用 exe 文件附加资源(例如图像)?