Datatable.acceptchanges фиксирует данные в таблице... означает
будет ли он вставлять данные в таблицу.. или datatable?
Datatable.acceptchanges фиксирует данные в таблице... означает
будет ли он вставлять данные в таблицу.. или datatable?
Цель AcceptChanges() - предоставить DataTable знать, что его данные были сохранены в базе данных. Все DataRows в DataTable имеют свою строку. RowState установлен в DataRowState.Unchanged.
Он не сохраняет данные в базе данных. Это делается отдельно.
Здесь документация:
Когда вызывается AcceptChanges, любой Объект DataRow все еще находится в режиме редактирования успешно завершает свои правки. DataRowState также изменяется: все добавлено и Измененные строки становятся неизменными, и Удаленные строки удаляются.
Метод AcceptChanges обычно вызовите DataTable после того, как вы попытайтесь обновить DataSet, используя метод DbDataAdapter.Update.
Таким образом, ваша фактическая база данных не изменяется.
Будет влиять только на данные. Не какая-либо таблица DB.
Некоторые люди предпочитают манипулировать данными в datatable, примеры удаляют определенные строки или висят все имена в верхнем регистре. удаление NULL
и т.д.
AcceptChanges
просто сохраняет эти изменения в datatable.
Если вы хотите зафиксировать изменения, вам нужно использовать dataadaptor или использовать другой метод для получения данных из datarows в datatable и фиксации изменений.
В моем случае это было вызвано полем автоматического номера в базе данных, я предлагаю ниже вызов update methof адаптера данных вызывать обновление /// для столбца автоматического номера call acceptchanges of datatable
Затем заново заполнить таблицу через oledbadapter. Если вам не нужно поле autonumber, не добавляйте это как параметр в deleteecommand oledbadapter
Хорошо. Если у меня это право, явное вызов DT.CommitChanges() будет устанавливать все строки в UNCHANGED. И если это так, при вызове DA.UPDATE(DT) любые изменения, внесенные в datatable, будут проигнорированы.
Таким образом, вам нужно только вызвать DT.CommitChanges() для тех изменений, которые вы НЕ хотите достичь в базе данных.
Следовательно, изменения делают это для .NET-данных, независимо от вызова CommitChanges, но чтобы получить изменения в таблице базы данных, не вызывайте CommitChanges перед выполнением DA.Update. И, конечно, подразумевая, что DA.Update должен быть вызван для фактического нажатия на изменения в базе данных...