【问题标题】:what's the proper way to tell if new rows were added to a DataTable after the DataAdapter's Fill() method is called?在调用 DataAdapter Fill() 方法后,判断新行是否添加到 DataTable 的正确方法是什么?
【发布时间】:2012-07-02 22:46:09
【问题描述】:

我一直在玩 DataTable 的 RowChanged 和 RowChanging 事件,还有 TableNewRow 事件,但无法让它工作。

本质上,我拥有的是一个事件处理程序,其中包含填充 DataTable 的代码,然后是另一个事件处理程序,其中包含重新填充相同 DataTable 的代码,并且应该通知用户在调用 Fill 方法之间添加了新行到表(假设是这种情况)。

我也一直在使用 DataRow 的索引器并指定 DataRowVersion,但无法使其正常工作。

我一直在使用 DataAdapter 的 FillLoadOption 方法,但仍然无法让它工作。

谁能给我一个提示?

【问题讨论】:

  • 我不认为只计算行数会不好。如果我错了,请纠正我。
  • 你是对的。那会奏效。但是我仍然需要一种方法来向用户显示更改了哪些行。我想我可以遍历所有内容并手动比较行,但这似乎太笨拙了。
  • 啊,你也想要改变。这就说得通了。 msdn.microsoft.com/en-us/library/k2552649.aspx

标签: c# .net ado.net datatable


【解决方案1】:

您可以使用DataTable.GetChanges() 方法了解上次针对表发出的AcceptChanges 中添加、修改或删除了哪些行

例如:

DataTable added = dt.GetChanges(DataRowState.Added);
int countAdded = added.Rows.Count;

DataRowState 枚举让您可以选择其他类型的修改行

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-22
  • 1970-01-01
  • 2015-10-15
  • 2010-11-07
  • 1970-01-01
相关资源
最近更新 更多