2009-09-09 6 views
3

Я смущен относительно влияния использования AcceptChanges в наборе данных. Из моих тестов видно, что это заставляет изменения базы данных быть допущенными, не обращая внимания на какие-либо ограничения в базе данных.Использование AcceptChanges с SQL Server

Может ли кто-нибудь подтвердить, если это так, а если нет, то как это отличается от использования функции обновления в наборе данных?

ответ

7

AcceptChanges не влияет на вашу базу данных, это влияет только на DataSet (ваша копия данных в памяти).

Использование AcceptChanges приведет к тому, что у всех Datarows всех таблиц в наборе данных будет сброшен Rowstate в RowState.Unchanged.

Обычно вы используете AcceptChanges вместе с методом DataTable.GetChanges. Или с помощью метода DbDataAdapter.Update. Вы бы использовали любой из них, чтобы получить изменения или сохранить изменения в базе данных, и затем вы должны использовать AcceptChanges, чтобы сообщить DataSet, что изменения были сохранены.

+1

DataAdapter.Update будет вызывать AcceptChanges по строкам от вашего имени, поэтому нет необходимости называть это самостоятельно после вызова Update – McKenzieG1

+0

Хм. Ты прав. Хорошая точка зрения! –

Смежные вопросы