Пошаговое руководство. Сложная привязка данных в проекте уровня приложения
Обновлен: Июль 2008
Применимость |
---|
Сведения в данном разделе относятся только к указанным проектам Visual Studio Tools for Office и версиям приложений Microsoft Office. Тип проекта
Версия Microsoft Office
Дополнительные сведения см. в разделе Доступность функций по типам приложений и проектов. |
Начиная с Visual Studio 2008 с пакетом обновления 1 (SP1), можно привязать данные к элементам управления Windows Forms в проектах уровня приложения. В этом пошаговом руководстве демонстрируется добавление элемента управления в лист Microsoft Office Excel и привязка элементов управления к данным во время выполнения.
В данном пошаговом руководстве описываются следующие задачи.
Добавление ListObject элемента управления в лист во время выполнения.
Создание BindingSource, соединяющего элемент управления с экземпляром набора данных.
Примечание. |
---|
На вашем компьютере названия некоторых элементов интерфейса пользователя Visual Studio или их расположение могут отличаться от указанных в нижеследующих инструкциях. Это зависит от имеющегося выпуска Visual Studio и используемых параметров. Дополнительные сведения см. в разделе Параметры Visual Studio. |
Обязательные компоненты
Для выполнения инструкций данного пошагового руководства необходимы указанные ниже компоненты.
Visual Studio Tools for Office (необязательный компонент Visual Studio 2008 Professional и Visual Studio Team System);
Средства Visual Studio Tools for Office по умолчанию устанавливаются с перечисленными версиями Visual Studio. Описание проверки наличия установленных версий см. в разделе Установка средств Visual Studio для Office.
Excel 2007.
Доступ к выполняемому экземпляру SQL Server 2005 или SQL Server 2005 Express с вложенным примером базы данных AdventureWorksLT. Базу данных AdventureWorksLT можно загрузить с веб-узла CodePlex. Дополнительные сведения о прикреплении базы данных см. в следующих разделах.
Подробнее о прикреплении базы данных с помощью SQL Server Management Studio или SQL Server Management Studio Express см. Практическое руководство. Прикрепление базы данных (SQL Server Management Studio).
Подробнее о прикреплении базы данных с помощью командной строки см. Практическое руководство. Прикрепление файла базы данных к SQL Server Express.
Создание нового проекта
Первым этапом является создание проекта надстроек в Excel.
Чтобы создать новый проект, выполните следующие действия.
Создайте проект Надстройка Word 2007 с именем Заполнение листов данными из базы данных в Visual Basic или C#.
Дополнительные сведения см. в разделе Практическое руководство. Создание проектов Visual Studio Tools for Office.
Visual Studio открывает файл ThisAddIn.vb или ThisAddIn.cs и добавляет проект Заполнение листов данными из базы данных в обозреватель решений.
Создание источника данных
Чтобы добавить типизированный набор данных в проект, используйте окно Источники данных.
Добавление типизированного набора данных в проект
В меню Данные выберите команду Добавить новый источник данных.
Появится мастер настройки источника данных.
Щелкните База данных и нажмите кнопку Далее.
Если подключение к базе данных AdventureWorksLT существует, выберите его и нажмите кнопку Далее.
В противном случае нажмите кнопку Новое подключение и с помощью диалогового окна Добавить подключение создайте новое подключение. Дополнительные сведения см. в разделе Практическое руководство. Создание подключений к базам данных SQL Server.
На странице Сохранить строку подключения в файл конфигурации приложения нажмите кнопку Далее.
На странице Выбор объектов базы данных разверните Таблицы и выберите Address (SalesLT).
Нажмите кнопку Готово.
Файл AdventureWorksLTDataSet.xsd добавлен в обозреватель решений. Этот файл определяет следующие элементы:
Типизированный набор данных с именем AdventureWorksLTDataSet. Этот набор данных представляет содержимое таблицы Address (SalesLT) в базе данных AdventureWorksLT.
Адаптер таблиц TableAdapter с именем AddressTableAdapter. Этот адаптер TableAdapter может использоваться для чтения и записи данных в AdventureWorksLTDataSet. Дополнительные сведения см. в разделе Общие сведения об адаптере таблиц.
Далее в пошаговом руководстве используются оба эти объекта.
Создание элементов управления и их привязка к данным
В этом пошаговом руководстве элемент управления ListObject отображает все выбранные данные из таблицы сразу после того, как пользователь открывает книгу. Объект списка использует BindingSource для связи элемента управления с базой данных.
Дополнительные сведения о привязке элементов управления к данным см. в разделе Привязка данных к элементам управления.
Добавление объекта списка, набора данных и адаптера таблиц
В классе 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;
В метод 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();
Добавьте следующий код в метод 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();
Создайте диапазон и добавьте элемент управления 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");
Свяжите элемент управления содержимым 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. |