Поделиться через


Пошаговое руководство. Сложная привязка данных в проекте уровня приложения

Обновлен: Июль 2008

Применимость

Сведения в данном разделе относятся только к указанным проектам Visual Studio Tools for Office и версиям приложений Microsoft Office.

Тип проекта

  • Проекты уровня приложения

Версия Microsoft Office

  • Excel 2007

Дополнительные сведения см. в разделе Доступность функций по типам приложений и проектов.

Начиная с Visual Studio 2008 с пакетом обновления 1 (SP1), можно привязать данные к элементам управления Windows Forms в проектах уровня приложения. В этом пошаговом руководстве демонстрируется добавление элемента управления в лист Microsoft Office Excel и привязка элементов управления к данным во время выполнения.

В данном пошаговом руководстве описываются следующие задачи.

  • Добавление ListObject элемента управления в лист во время выполнения.

  • Создание BindingSource, соединяющего элемент управления с экземпляром набора данных.

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

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

Обязательные компоненты

Для выполнения инструкций данного пошагового руководства необходимы указанные ниже компоненты.

Создание нового проекта

Первым этапом является создание проекта надстроек в Excel.

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

  • Создайте проект Надстройка Word 2007 с именем Заполнение листов данными из базы данных в Visual Basic или C#.

    Дополнительные сведения см. в разделе Практическое руководство. Создание проектов Visual Studio Tools for Office.

    Visual Studio открывает файл ThisAddIn.vb или ThisAddIn.cs и добавляет проект Заполнение листов данными из базы данных в обозреватель решений.

Создание источника данных

Чтобы добавить типизированный набор данных в проект, используйте окно Источники данных.

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

  1. В меню Данные выберите команду Добавить новый источник данных.

    Появится мастер настройки источника данных.

  2. Щелкните База данных и нажмите кнопку Далее.

  3. Если подключение к базе данных AdventureWorksLT существует, выберите его и нажмите кнопку Далее.

    В противном случае нажмите кнопку Новое подключение и с помощью диалогового окна Добавить подключение создайте новое подключение. Дополнительные сведения см. в разделе Практическое руководство. Создание подключений к базам данных SQL Server.

  4. На странице Сохранить строку подключения в файл конфигурации приложения нажмите кнопку Далее.

  5. На странице Выбор объектов базы данных разверните Таблицы и выберите Address (SalesLT).

  6. Нажмите кнопку Готово.

    Файл AdventureWorksLTDataSet.xsd добавлен в обозреватель решений. Этот файл определяет следующие элементы:

    • Типизированный набор данных с именем AdventureWorksLTDataSet. Этот набор данных представляет содержимое таблицы Address (SalesLT) в базе данных AdventureWorksLT.

    • Адаптер таблиц TableAdapter с именем AddressTableAdapter. Этот адаптер TableAdapter может использоваться для чтения и записи данных в AdventureWorksLTDataSet. Дополнительные сведения см. в разделе Общие сведения об адаптере таблиц.

    Далее в пошаговом руководстве используются оба эти объекта.

Создание элементов управления и их привязка к данным

В этом пошаговом руководстве элемент управления ListObject отображает все выбранные данные из таблицы сразу после того, как пользователь открывает книгу. Объект списка использует BindingSource для связи элемента управления с базой данных.

Дополнительные сведения о привязке элементов управления к данным см. в разделе Привязка данных к элементам управления.

Добавление объекта списка, набора данных и адаптера таблиц

  1. В классе ThisAddIn объявите следующие элементы управления для отображения таблицы Address набора данных AdventureWorksLTDataSet.

    Private addressListObject As Microsoft.Office.Tools.Excel.ListObject
    Private adventureWorksDataSet As AdventureWorksLTDataSet
    Private addressTableAdapter As AdventureWorksLTDataSetTableAdapters.AddressTableAdapter
    Private addressBindingSource As System.Windows.Forms.BindingSource
    
    private Microsoft.Office.Tools.Excel.ListObject addressListObject;
    private AdventureWorksLTDataSet adventureWorksDataSet;
    private AdventureWorksLTDataSetTableAdapters.AddressTableAdapter addressTableAdapter;
    private System.Windows.Forms.BindingSource addressBindingSource;
    
  2. В метод ThisAddIn_Startup добавьте следующий код для инициализации набора данных и его заполнения сведениями из набора данных AdventureWorksLTDataSet.

    Me.addressTableAdapter = New AdventureWorksLTDataSetTableAdapters.AddressTableAdapter()
    Me.adventureWorksDataSet = New AdventureWorksLTDataSet()
    Me.addressTableAdapter.Fill(Me.adventureWorksDataSet.Address)
    Me.addressBindingSource = New System.Windows.Forms.BindingSource()
    
    this.addressTableAdapter = new AdventureWorksLTDataSetTableAdapters.AddressTableAdapter();
    this.adventureWorksDataSet = new AdventureWorksLTDataSet();
    this.addressTableAdapter.Fill(this.adventureWorksDataSet.Address);
    this.addressBindingSource = new System.Windows.Forms.BindingSource();
    
  3. Добавьте следующий код в метод ThisAddIn_Startup. Этот код создает ведущий элемент, расширяющий лист. Дополнительные сведения см. в разделе Расширение документов Word и книг Excel в надстройках уровня приложения во время выполнения.

    Dim worksheet As Excel.Worksheet = DirectCast(Me.Application.ActiveWorkbook.Worksheets(1), Excel.Worksheet)
    Dim extendedWorksheet As Worksheet = worksheet.GetVstoObject()
    
    Excel.Worksheet worksheet = (Excel.Worksheet)this.Application.ActiveWorkbook.Worksheets[1];
    Worksheet extendedWorksheet = worksheet.GetVstoObject();
    
  4. Создайте диапазон и добавьте элемент управления ListObject.

    Dim cell As Excel.Range = extendedWorksheet.Range("$A$1:$G$5", System.Type.Missing)
    Me.addressListObject = extendedWorksheet.Controls.AddListObject(cell, "list1")
    
    Excel.Range cell = extendedWorksheet.Range["$A$1:$G$5", System.Type.Missing];
    this.addressListObject = extendedWorksheet.Controls.AddListObject(cell, "list1");
    
  5. Свяжите элемент управления содержимым AdventureWorksLTDataSet, используя BindingSource. Передайте имена столбцов, которые следует привязать к объекту списка.

    Me.addressBindingSource.DataSource = Me.adventureWorksDataSet.Address
    Me.addressListObject.AutoSetDataBoundColumnHeaders = True
    Me.addressListObject.SetDataBinding( _
        Me.addressBindingSource, "", "AddressID", "AddressLine1", _
        "AddressLine2", "City", "StateProvince", "CountryRegion", "PostalCode")
    
    this.addressBindingSource.DataSource = this.adventureWorksDataSet.Address;
    this.addressListObject.AutoSetDataBoundColumnHeaders = true;
    this.addressListObject.SetDataBinding(
        this.addressBindingSource, "", "AddressID", "AddressLine1", 
        "AddressLine2", "City", "StateProvince", "CountryRegion", "PostalCode");
    

Проверка надстройки

После запуска Excel элемент управления ListObject отображает данные из таблицы Address набора данных AdventureWorksLTDataSet.

Проверка надстройки

  • Нажмите клавишу F5.

    Элемент управления ListObject с именем addressListObject создается в листе. Одновременно в проект добавляется объект набора данных adventureWorksLTDataSet и BindingSource с именем addressBindingSource. ListObject привязан к BindingSource, который, в свою очередь, связан с экземпляром набора данных.

См. также

Задачи

Практическое руководство. Заполнение листов данными из базы данных

Практическое руководство. Заполнение документов данными из базы данных

Практическое руководство. Заполнение документов данными из служб

Практическое руководство. Заполнение документов данными из объектов

Практическое руководство. Прокрутка записей базы данных на листе

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

Пошаговое руководство. Простая привязка данных в проекте уровня документа

Пошаговое руководство. Сложная привязка данных в проекте уровня документа

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

Привязка данных к элементам управления

Общие сведения об использовании файлов локальной базы данных в решениях для Office

Общие сведения об источниках данных

Общие сведения об отображении данных

Общие сведения об использовании файлов локальной базы данных в решениях для Office

Общие сведения о подключении к данным в Visual Studio

Ссылки

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

Другие ресурсы

Данные в решения Microsoft Office

Журнал изменений

Дата

Журнал изменений

Причина

Июль 2008

Добавленный раздел.

Изменение функции SP1.