2

我有一些我正在更新的旧数据集代码。我正在尝试确定数据集是否对其进行了更改,以便我可以正确提示保存请求。但是 myDataset.HasChanges() 总是返回 true。

在我的保存方法中,我编辑了代码以确定数据集何时更改,并制作了如下代码:

1. myBindingSource.EndEdit()
2. myTableAdapter.Update(myDataSet)
3. myBindingSource.EndEdit()

在第 1 行之后,-myDataSet.HasChanges = true(可理解)
在第 2 行之后,-myDataSet.HasChanges = false(可理解)
在第 3 行之后,-myDataSet.HasChanges = true

我不确定为什么这会发生在第 3 行,这不应该是错误的,因为我只是在数据集上运行了更新吗?

4

2 回答 2

3

可能有一个 UI 元素导致 dataSet/dataTable 中的值发生变化。

在没有任何 DataBinding 的简单控制台应用程序中尝试您的代码。

于 2010-10-15T09:04:48.683 回答
1

您的 TableAdapter 是否刷新了您的数据集?如果是这样,那么您可能有一些类似于初始化的键(记住,GUID==good,Int==bad)。就像从 TableAdapter 填充时,您需要调用 AcceptChanges 将所有行的状态重置为未更改。

于 2010-03-13T05:49:37.487 回答