Практическое руководство. Установка порядка выполнения иерархического обновления
При сохранении измененных данных набора данных в базе данных (с включенной опцией иерархического обновления) можно управлять порядком, который TableAdapterManager использует для отправки отдельных команд Вставки, Обновления и Удаления, необходимых для сохранения данных. Порядок по умолчанию для выполнения иерархического обновления – Вставки, Обновления и затем Удаления. TableAdapterManager предоставляет свойство UpdateOrder, которое может быть задано для выполнения сначала Обновлений, потом Вставок и Удалений.
Важно понять, что по умолчанию TableAdapterManager сначала выполняет Вставки для всех таблиц в наборе данных, затем Обновления для всех таблиц в наборе данных и после этого выполняет Удаления.
Изменение порядка так, чтобы сначала выполнялись Обновления, может быть полезно при изменении значений первичного ключа для существующих записей. Как и ожидалось, первоочередное выполнение Обновления изменит существующую запись. Первоочередное выполнение Вставки будет создавать новую запись, так как новый первичный ключ еще отсутствует в базе данных.
Процедура
Чтобы задать порядок, в котором выполняется иерархическое обновление:
В режиме конструктора откройте форму, содержащую TableAdapterManager, который выполняет обновление.
Нажмите кнопку TableAdapterManager в панели компонентов.
Укажите свойство UpdateOrder в окне Свойства, чтобы задать порядок выполнения операций, необходимый для приложения.
Чтобы программно задать порядок, в котором выполняется иерархическое обновление:
Следующий код устанавливает TableAdapterManager, чтобы он сначала выполнял все Обновления, затем все Вставки и потом Удаления. (Замените yourDataSetTableAdapters допустимым именем из проекта.)
Me.TableAdapterManager.UpdateOrder = _ yourDataSetTableAdapters.TableAdapterManager.UpdateOrderOption.UpdateInsertDelete
this.tableAdapterManager.UpdateOrder = yourDataSetTableAdapters.TableAdapterManager.UpdateOrderOption.UpdateInsertDelete;
Следующий код задает TableAdapterManager, чтобы он сначала выполнял все Вставки, затем все Обновления, и потом Удаления. Это режим работы TableAdapterManager по умолчанию.
Me.TableAdapterManager.UpdateOrder = _ yourDataSetTableAdapters.TableAdapterManager.UpdateOrderOption.InsertUpdateDelete
this.tableAdapterManager.UpdateOrder = yourDataSetTableAdapters.TableAdapterManager.UpdateOrderOption.InsertUpdateDelete;
См. также
Задачи
Практическое руководство. Разрешение и запрет иерархического обновления
Пошаговое руководство. Сохранение данных связанных таблиц данных (иерархическое обновление)