Ключевой функцией любого приложения базы данных является возможность обновления данных, хранимых в базе данных. В ADO.NET обновление данных включает использование DataAdapter и DataSet, а также объектов Command. Обновление может включать использование транзакций.
DataAdapter.Update метод
С помощью метода Update объекта DataAdapter можно передавать
отложенные изменения в источник данных.
Перегрузки метода DataAdapter.Update:
- DataAdapter.Update(DataSet) – обновляет источник на основе
- данных, предоставленных объектом DataSet.
- DataAdapter.Update(DataTable) – обновляет источник на основе данных, предоставленных объектом DataTable.
- DataAdapter.Update(DataRow[]) – обновляет источник на основе данных, предоставленных массивом объектов DataRow.
Как работает метод Update
Обновление выполняется построчно. Для каждой вставленной, измененной и удаленной строки метод Update определяет тип изменений, выполненных в ней (Insert, Update или Delete).В зависимости от типа изменений шаблон команд INSERT, UPDATE, или DELETE выполняется для распространения измененной строки в источник данных.
Проще говоря, когда приложение вызывает метод Update, объект DataAdapter проверяет свойство RowState и выполняет необходимые операторы INSERT, UPDATE или DELETE для передачи отложенных изменений в источник данных. Если операторы INSERT, UPDATE или DELETE не были указаны, метод Update создает исключение.
Создание команды для вставки данных
Для того чтобы DataAdapter знал как передавать данные строк, у которых свойство RowState имеет значение Added ему нужно предоставить экземпляр SqlCommand, имеющий логику вставки данных в источник.
Создание команды для удаления данных
Для того чтобы DataAdapter знал как передавать данные строк, у которых свойство RowState имеет значение Deleted ему нужно предоставить экземпляр SqlCommand, имеющий логику удаления данных в источнике.
Создание команды для изменения данных
Для того чтобы DataAdapter знал как передавать данные строк, у которых свойство RowState имеет значение Updated ему нужно предоставить экземпляр SqlCommand, имеющий логику изменения данных в источнике.
После присвоения свойствам InsertCommand, UpdateCommand и DeleteCommand объекта DataAdapter соответствующих команд(экземпляров SqlCommand), объект DataAdapter полностью сконфигурирован для передачи отложенных изменений в источник данных.