DataSet.HasChanges имеет значение true даже сразу после запуска TableAdapter.Update. - PullRequest
1 голос
/ 12 марта 2010

У меня есть устаревший код набора данных, который я обновляю. Я пытаюсь определить, есть ли в наборе данных изменения, чтобы я мог правильно запросить запрос на сохранение. Однако 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, не должно ли это быть ложным, потому что я только что запустил обновления для набора данных?

Ответы [ 2 ]

1 голос
/ 15 октября 2010

Может быть элемент пользовательского интерфейса, вызывающий изменение значения в dataSet / dataTable.

Попробуйте свой код в простом консольном приложении без привязки данных.

1 голос
/ 13 марта 2010

Обновляет ли ваш TableAdapter ваш DataSet? Если это так, то у вас, вероятно, есть что-то вроде инициализации ключа (помните, GUID == хорошо, Int == плохо). Точно так же, как при заполнении из TableAdapter, вам нужно вызвать AcceptChanges, чтобы сбросить состояние всех строк на неизменное.

...