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 должен быть вызван для фактического нажатия на изменения в базе данных...