Datatable.acceptchanges () фиксирует данные в таблице - PullRequest
13 голосов
/ 19 апреля 2011

Datatable.acceptchanges фиксирует данные в таблице ... означает

будет ли он вставлять данные в таблицу .. или датироваться?

Ответы [ 6 ]

10 голосов
/ 19 апреля 2011

Цель AcceptChanges () - сообщить DataTable, что его данные были сохранены в базе данных.Все DataRows в DataTable имеют свой row.RowState, установленный в DataRowState.Unchanged.

Он не сохраняет данные в базе данных.Это делается отдельно.

7 голосов
/ 19 апреля 2011

Вот документация :

Когда вызывается AcceptChanges, любой Объект DataRow все еще находится в режиме редактирования успешно заканчивает свои правки. DataRowState также изменяется: все добавлено и измененные строки становятся неизменными, и удаленные строки удаляются.

Метод AcceptChanges обычно вызывается на DataTable после вас попытаться обновить DataSet с помощью метод DbDataAdapter.Update.

Таким образом, ваша фактическая база данных не затронута.

2 голосов
/ 19 апреля 2011

Влияет только на данные. Не любая таблица БД.

0 голосов
/ 30 декабря 2014

Хорошо - если у меня есть это право, явный вызов DT.CommitChanges () установит для всех строк значение UNCHANGED.И если это так, то при вызове DA.UPDATE (DT) любые изменения, сделанные вами в datatable, будут игнорироваться.

Так что, похоже, вы должны вызывать DT.CommitChanges () только для тех изменений, которые выНЕ ХОЧЕТСЯ обратиться к базе данных.

Поэтому изменения ДОЛЖНЫ сделать его доступным для данных .NET независимо от вызова CommitChanges, но чтобы получить изменения в таблице базы данных, не вызывайте CommitChanges перед выполнениемDA. Обновление.И, конечно, подразумевается, что DA.Update должен быть вызван для фактического внесения изменений в базу данных ...

0 голосов
/ 03 сентября 2012

В моем случае это было вызвано полем автонумерации в базе данных, я предлагаю ниже вызовите обновление metaof адаптера данных обновление звонка /// для колонки с автонумерацией прием вызовов от datatable

Затем снова заполните таблицу через oledbadapter. Если вам не нужно поле автонумерации, не добавляйте его в качестве параметра в команду удаления oledbadapter

0 голосов
/ 30 августа 2012

Некоторые люди предпочитают манипулировать данными в таблицах данных, например, удаляют определенные строки или вешают все имена в верхний регистр. удаление NULL и т. д.

AcceptChanges просто сохраняет эти изменения в базе данных.

Если вы хотите зафиксировать изменения, вам нужно использовать dataadaptor или использовать другой метод, чтобы получить данные из datarows в таблице данных и зафиксировать изменения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...