如何在更新Datagridview时查找底层Datatable中的哪些行已更新?

问题描述:

这就是我想实现:如何在更新Datagridview时查找底层Datatable中的哪些行已更新?

  1. DataTable的人口使用从非数据库源
  2. 此表绑定到使用的BindingSource
  3. 在DataGridView由用户更新一个DataGridView,使数据一些细胞现在具有新的价值。
  4. 由于该表绑定到datagridview,所以其值更新。

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

我曾尝试:

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

但这总是返回0行。有没有办法只得到修改的行?

最坏的情况:

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

谢谢!

如何:

DataTable changedRecordsTable = dataTable1.GetChanges(); 

你可以找到更多的细节在How to: Retrieve Changed Rows

+1

我要补充:_table.AcceptChanges() – eastender 2010-08-03 12:18:15

+0

哦,好。我很高兴它为你工作。 – DOK 2010-08-03 21:26:00