Пошаговое руководство. Простая привязка данных в проекте уровня приложения
Обновлен: Июль 2008
Применение |
---|
Сведения, приведенные в данном разделе, относятся только к указанным проектам Visual Studio Tools for Office и версиям Microsoft Office. Тип проекта
Версия Microsoft Office
Дополнительные сведения см. в разделе Доступность функций по типам приложений и проектов. |
Начиная с Visual Studio 2008 с пакетом обновления 1 (SP1), можно привязать данные к элементам управления ведущего приложения и Windows Forms в проектах уровня приложения. В этом пошаговом руководстве демонстрируется добавление элементов управления в документ Microsoft Office Word и привязка элементов управления к данным во время выполнения.
В этом пошаговом руководстве представлены следующие задачи:
Добавление объекта ContentControl в документ во время выполнения.
Создание объекта 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.
Word 2007.
Доступ к выполняемому экземпляру SQL Server 2005 или SQL Server 2005 Express с примером подключенной базы данных AdventureWorksLT. Базу данных AdventureWorksLT можно загрузить с веб-узла CodePlex Web site. Дополнительные сведения о подключении базы данных см. в следующих разделах:
Подключение базы данных с помощью SQL Server Management Studio или SQL Server Management Studio Express см. в разделе Практическое руководство. Подключение базы данных (SQL Server Management Studio).
Подключение базы данных с помощью командной строки см. в разделе Практическое руководство. Подключение файла базы данных к SQL Server Express.
Создание нового проекта
Для начала следует создать проект надстройки Word.
Создание нового проекта
Создайте проект Надстройка Word 2007 с именем Заполнение документов данными из базы данных в Visual Basic или C#.
Дополнительные сведения см. в разделе Практическое руководство. Создание проектов Visual Studio Tools for Office.
Visual Studio откроет файл ThisAddIn.vb или ThisAddIn.cs и добавит проект Заполнение документов данными из базы данных в обозреватель решений.
Создание источника данных
Чтобы добавить в проект типизированный набор данных, используйте окно Источники данных.
Добавление типизированного набора данных в проект
В меню Данные выберите команду Добавить новый источник данных.
Откроется Мастер настройки источника данных.
Щелкните База данных и нажмите кнопку Далее.
Если подключение к базе данных AdventureWorksLT существует, выберите его и нажмите кнопку Далее.
В противном случае нажмите кнопку Новое подключение и с помощью диалогового окна Добавить подключение создайте новое подключение. Дополнительные сведения см. в разделе Практическое руководство. Создание подключений к базам данных SQL Server.
На странице Сохранить строку подключения в файл конфигурации приложения нажмите кнопку Далее.
На странице Выбор объектов базы данных разверните узел Таблицы и выберите Customer (SalesLT).
Нажмите кнопку Готово.
Файл AdventureWorksLTDataSet.xsd добавлен в обозреватель решений. Этот файл определяет следующие элементы:
Типизированный набор данных с именем AdventureWorksLTDataSet. Этот набор данных представляет содержимое таблицы Customer (SalesLT) в базе данных AdventureWorksLT.
Адаптер таблиц TableAdapter с именем CustomerTableAdapter. Этот адаптер TableAdapter может использоваться для чтения и записи данных в AdventureWorksLTDataSet. Дополнительные сведения см. в разделе Общие сведения об адаптере таблиц.
Далее в пошаговом руководстве используются оба эти объекта.
Создание элементов управления и их привязка к данным
Интерфейс для просмотра записей базы данных в данном пошаговом руководстве является очень простым и создается внутри документа. Объект единовременно отображает ContentControl одну запись базы данных и два элемента управления Button, которые позволяют пролистывать записи назад и вперед. Элемент управления содержимым использует BindingSource для связи с базой данных.
Дополнительные сведения о привязке элементов управления к данным см. в разделе Привязка данных к элементам управления.
Создание интерфейса в документе
В классе ThisAddIn объявите следующие элементы управления для отображения и прокрутки таблицы Customer базы данных AdventureWorksLTDataSet.
Private adventureWorksDataSet As AdventureWorksLTDataSet Private customerTableAdapter As AdventureWorksLTDataSetTableAdapters.CustomerTableAdapter Private customerBindingSource As System.Windows.Forms.BindingSource Private customerContentControl As Microsoft.Office.Tools.Word.RichTextContentControl Private WithEvents button1 As Microsoft.Office.Tools.Word.Controls.Button Private WithEvents button2 As Microsoft.Office.Tools.Word.Controls.Button
private AdventureWorksLTDataSet adventureWorksDataSet; private AdventureWorksLTDataSetTableAdapters.CustomerTableAdapter customerTableAdapter; private System.Windows.Forms.BindingSource customerBindingSource; private Microsoft.Office.Tools.Word.RichTextContentControl customerContentControl; private Microsoft.Office.Tools.Word.Controls.Button button1; private Microsoft.Office.Tools.Word.Controls.Button button2;
В метод ThisAddIn_Startup добавьте следующий код для инициализации набора данных, заполнении набора данных сведениями из базы данных AdventureWorksLTDataSet.
Me.adventureWorksDataSet = New AdventureWorksLTDataSet() Me.customerTableAdapter = New AdventureWorksLTDataSetTableAdapters.CustomerTableAdapter() Me.customerTableAdapter.Fill(Me.adventureWorksDataSet.Customer) Me.customerBindingSource = New System.Windows.Forms.BindingSource()
this.adventureWorksDataSet = new AdventureWorksLTDataSet(); this.customerTableAdapter = new AdventureWorksLTDataSetTableAdapters.CustomerTableAdapter(); this.customerTableAdapter.Fill(this.adventureWorksDataSet.Customer); this.customerBindingSource = new System.Windows.Forms.BindingSource();
Добавьте следующий код в метод ThisAddIn_Startup. Этот код создает ведущий элемент, расширяющий документ. Дополнительные сведения см. в разделе Расширение документов Word и книг Excel в надстройках уровня приложения во время выполнения.
Dim currentDocument As Word.Document = Me.Application.ActiveDocument Dim extendedDocument As Document = currentDocument.GetVstoObject()
Word.Document currentDocument = this.Application.ActiveDocument; Document extendedDocument = currentDocument.GetVstoObject();
Определите несколько диапазонов в начале документа. Эти диапазоны указывают место вставки текста и размещения элементов управления.
extendedDocument.Paragraphs(1).Range.InsertParagraphBefore() extendedDocument.Paragraphs(1).Range.InsertParagraphBefore() extendedDocument.Paragraphs(1).Range.Text = "The companies listed in the AdventureWorksLT database: " extendedDocument.Paragraphs(2).Range.Text = " " Dim range1 As Word.Range = extendedDocument.Paragraphs(2).Range.Characters.First Dim range2 As Word.Range = extendedDocument.Paragraphs(2).Range.Characters.Last Dim range3 As Word.Range = extendedDocument.Paragraphs(1).Range.Characters.Last
extendedDocument.Paragraphs[1].Range.InsertParagraphBefore(); extendedDocument.Paragraphs[1].Range.InsertParagraphBefore(); extendedDocument.Paragraphs[1].Range.Text = "The companies listed in the AdventureWorksLT database: \n"; extendedDocument.Paragraphs[2].Range.Text = " "; Word.Range range1 = extendedDocument.Paragraphs[2].Range.Characters.First; Word.Range range2 = extendedDocument.Paragraphs[2].Range.Characters.Last; Word.Range range3 = extendedDocument.Paragraphs[1].Range.Characters.Last;
Добавьте элементы управления интерфейса для диапазонов, заданных на предыдущем этапе.
Me.button1 = extendedDocument.Controls.AddButton(range1, 60, 15, "1") Me.button1.Text = "Previous" Me.button2 = extendedDocument.Controls.AddButton(range2, 60, 15, "2") Me.button2.Text = "Next" Me.customerContentControl = extendedDocument.Controls.AddRichTextContentControl( _ range3, _ "richTextContentControl1")
this.button1 = extendedDocument.Controls.AddButton(range1, 60, 15, "1"); this.button1.Text = "Previous"; this.button2 = extendedDocument.Controls.AddButton(range2, 60, 15, "2"); this.button2.Text = "Next"; this.customerContentControl = extendedDocument.Controls.AddRichTextContentControl( range3, "richTextContentControl1");
Свяжите элемент управления содержимым AdventureWorksLTDataSet, используя BindingSource. При использовании языка C# также необходимо добавить два обработчика событий для элементов управления Button.
Me.customerBindingSource.DataSource = Me.adventureWorksDataSet.Customer Me.customerContentControl.DataBindings.Add( _ "Text", _ Me.customerBindingSource, _ "CompanyName", _ True, _ Me.customerContentControl.DataBindings.DefaultDataSourceUpdateMode)
this.customerBindingSource.DataSource = this.adventureWorksDataSet.Customer; this.customerContentControl.DataBindings.Add( "Text", this.customerBindingSource, "CompanyName", true, this.customerContentControl.DataBindings.DefaultDataSourceUpdateMode); this.button1.Click += new EventHandler(button1_Click); this.button2.Click += new EventHandler(button2_Click);
Добавьте следующий код для перемещения по записям базы данных.
Private Sub button1_Click(ByVal sender As Object, ByVal e As EventArgs) _ Handles button1.Click Me.customerBindingSource.MovePrevious() End Sub Private Sub button2_Click(ByVal sender As Object, ByVal e As EventArgs) _ Handles button2.Click Me.customerBindingSource.MoveNext() End Sub
void button1_Click(object sender, EventArgs e) { this.customerBindingSource.MovePrevious(); } void button2_Click(object sender, EventArgs e) { this.customerBindingSource.MoveNext(); }
Проверка надстройки
После запуска Word элемент управления содержимым отображает данные из набора данных AdventureWorksLTDataSet. Просмотрите записи базы данных, нажимая кнопки Далее и Назад.
Проверка надстройки
Нажмите клавишу F5.
Создается элемент управления содержимым с именем customerContentControl и заполняется данными. Одновременно в проект добавляется объект набора данных adventureWorksLTDataSet и BindingSource с именем customerBindingSource. ContentControl привязан к BindingSource, который, в свою очередь, связан с экземпляром набора данных.
Просмотрите записи базы данных, нажимая кнопки Далее и Назад.
См. также
Задачи
Практическое руководство. Заполнение листов данными из базы данных
Практическое руководство. Заполнение документов данными из базы данных
Практическое руководство. Заполнение документов данными из служб
Практическое руководство. Заполнение документов данными из объектов
Практическое руководство. Прокрутка записей базы данных на листе
Пошаговое руководство. Простая привязка данных в проекте уровня документа
Пошаговое руководство. Сложная привязка данных в проекте уровня документа
Практическое руководство. Заполнение документов данными из объектов
Основные понятия
Привязка данных к элементам управления
Общие сведения об использовании файлов локальной базы данных в решениях для Office
Общие сведения об источниках данных
Общие сведения об отображении данных
Общие сведения об использовании файлов локальной базы данных в решениях для Office
Общие сведения о подключении к данным в Visual Studio
Ссылки
Общие сведения о компоненте BindingSource
Другие ресурсы
Данные в решения Microsoft Office
Журнал изменений
Дата |
Изменения |
Причина |
---|---|---|
Июль 2008 |
Добавленный раздел. |
Изменение функции SP1. |