Datatable.acceptchanges() фиксирует данные в таблице

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

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

Ответ 1

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

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

Ответ 2

Здесь документация:

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

Метод AcceptChanges обычно вызовите DataTable после того, как вы попытайтесь обновить DataSet, используя метод DbDataAdapter.Update.

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

Ответ 3

Будет влиять только на данные. Не какая-либо таблица DB.

Ответ 4

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

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

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

Ответ 5

В моем случае это было вызвано полем автоматического номера в базе данных, я предлагаю ниже вызов update methof адаптера данных вызывать обновление /// для столбца автоматического номера call acceptchanges of datatable

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

Ответ 6

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

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

Следовательно, изменения делают это для .NET-данных, независимо от вызова CommitChanges, но чтобы получить изменения в таблице базы данных, не вызывайте CommitChanges перед выполнением DA.Update. И, конечно, подразумевая, что DA.Update должен быть вызван для фактического нажатия на изменения в базе данных...