Практическое руководство. Реализация иерархического обновления в существующих проектах Visual Studio

Обновлен: Ноябрь 2007

В Visual Studio 2008 типизированные наборы данных расширены новым компонентом TableAdapterManager. TableAdapterManager уменьшает размер кода, требуемого для сохранения данных в нескольких связанных таблицах из нескольких процедур с несколькими строками кода, требуется вызов лишь одного метода: TableAdapterManager.UpdateAll(TypedDataset). По умолчанию иерархическое обновление включено для всех новых наборов данных, добавляемых в проект или созданных в проекте. Существующие наборы данных (наборы данных, созданные в более ранних версиях Visual Studio) не содержат компонент TableAdapterManager. Таким образом, по умолчанию наборы данных, созданные в более ранних версиях, имеют свойство Иерархическое обновление, равное False. Создайте компоненты TableAdapterManager, установив свойство Иерархическое обновление равным True, и сохраните набор данных. Дополнительные сведения см. в разделе Общие сведения о компоненте TableAdapterManager.

Включение иерархического обновления и создание компонента TableAdapterManager

Bb629327.alert_note(ru-ru,VS.90).gifПримечание.

На вашем компьютере названия некоторых элементов интерфейса пользователя Visual Studio или их расположение могут отличаться от указанных в нижеследующих инструкциях. Это зависит от имеющегося выпуска Visual Studio и используемых параметров. Дополнительные сведения см. в разделе Параметры Visual Studio.

Для обеспечения иерархического обновления в более ранних версиях типизированных наборов данных:

  1. Откройте в Visual Studio 2008 проект, содержащий типизированный набор данных или обычные наборы данных.

    Откроется мастер Мастер преобразования Visual Studio.

  2. Выполните Мастер преобразования Visual Studio.

  3. Откройте набор данных в конструкторе Конструктор наборов данных, дважды щелкнув XSD-файл в обозревателе решений Обозреватель решений.

  4. Щелкните по пустой области в Конструкторе наборов данных.

  5. Найдите свойство Иерархическое обновление в окне Окно "Свойства".

  6. Задайте значение свойства Иерархическое обновление равным True.

  7. В меню Построение выберите Построить решение.

Настройка TableAdapterManager и сохранение данных

После задания значения свойства Иерархическое обновление равным True и сохранения набора данных создается компонент TableAdapterManager, позволяющий осуществлять иерархическое обновление. После создания компонента TableAdapterManager обновите существующий код, чтобы создать новый экземпляр TableAdapterManager и вызовите метод TableAdapterManager.UpdateAll() вместо вызовов отдельных методов TableAdapter.Update(). Если существующий код адаптера таблиц TableAdapter находится в библиотеке классов (или в любом файле, не имеющем интерфейса пользователя), следует программно создать экземпляр нового адаптера таблиц TableAdapterManager. Если существующий код TableAdapter находится на форме, можно создать новый TableAdapterManager путем перетаскивания компонента TableAdapterManager из Панели элементов на форму.

TableAdapterManager строго типизированы, то есть они создаются со свойствами, которые ссылаются на отдельные адаптеры таблиц TableAdapter, которыми они управляют. После создания экземпляра TableAdapterManager задайте отдельные свойства адаптера таблиц TableAdapter экземплярам каждого адаптера таблиц TableAdapter, как показано в следующих процедурах.

Чтобы добавить TableAdapterManager в существующий проект без интерфейса пользователя:

  1. Найдите код, вызывающий методы TableAdapter.Update (например CustomersTableAdapter.Update(NorthwindDataSet.Customers)).

  2. Замените код, вызывающий отдельные методы TableAdapter.Update, следующим кодом:

    Dim adapterManager as new TableAdapterManager
    adapterManager.TableName1TableAdapter = new _
    TableName1TableAdapter
    adapterManager.TableName2TableAdapter = new _
    TableName2TableAdapter
    
    adapterManager.UpdateAll(Me.DataSetName)
    
    TableAdapterManager adapterManager = 
    new TableAdapterManager();
    
    adapterManager.TableName1TableAdapter = 
    new TableName1TableAdapter();
    adapterManager.TableName2TableAdapter = 
    new TableName2TableAdapter();
    
    adapterManager.UpdateAll(this.DataSetName);
    

Чтобы добавить TableAdapterManager в существующий проект с интерфейсом пользователя:

  1. Откройте форму в конструкторе.

  2. Из Панели элементов перетащите на форму TableAdapterManager.

  3. Найдите код, вызывающий методы TableAdapter.Update (например CustomersTableAdapter.Update(NorthwindDataSet.Customers)).

  4. Замените код, вызывающий отдельные методы TableAdapter.Update, следующим кодом:

    Me.TableAdapterManager.TableName1TableAdapter = _
    new DatasetNameTableAdapters.TableName1TableAdapter
    Me.TableAdapterManager.TableName2TableAdapter = _
    new DatasetNameTableAdapters.TableName2TableAdapter
    
    Me.TableAdapterManager.UpdateAll(Me.DataSetName)
    
    TableAdapterManager.TableName1TableAdapter = new 
    TableName1TableAdapter();
    TableAdapterManager.TableName2TableAdapter = new 
    TableName2TableAdapter();
    
    TableAdapterManager.UpdateAll(this.DataSetName);
    

См. также

Основные понятия

Новые возможности данных

Общие сведения об иерархическом обновлении

Общие сведения о компоненте TableAdapterManager