检测数据集/数据表中的行何时发生更改

时间:2009-10-16 13:38:49

标签: c# .net winforms data-binding

我正在尝试为我的C#winforms应用程序添加一些额外的日志记录。我有一些数据绑定表单,所有数据库的东西都由绑定源和一些类型化的数据集/适配器管理。

通过这种设置,当某些内容发生变化时很难判断,我必须管理每个字段并保持其之前的值。有没有办法可以挂钩数据集并告诉什么时候有什么变化?我知道datarow有一个RowState枚举,这是一个很好的起点吗?我查看了绑定源的DataMemberChanged事件,但它从未解雇过......

3 个答案:

答案 0 :(得分:13)

要获取更新数据值的原始值,您可以执行以下操作:

<DataTableRow>[<DataColumn>, DataRowVersion.Original]

答案 1 :(得分:6)

要了解更改了DataSet.GetChanges method的内容。该示例显示了如何获取更改并完成更改。我还有一个使用DataTable的old example here,并展示了如何在合并后进行比较。它检查RowState并显示更改的值等。它靠近页面的底部,它在VB中,因为OP使用它,而不是C#。我现在要出去了,所以我不能提供相同的翻译,但是收集一些有用的技术应该非常简单。

答案 2 :(得分:4)

您可以使用RowChanged事件,RowChanging事件或DataTable引发的任何other events