Пошаговое руководство. Простая привязка данных в проекте уровня приложения
В проектах уровня приложения можно привязывать данные к элементам управления ведущего приложения и элементам управления Windows Forms.В этом пошаговом руководстве демонстрируется добавление элементов управления в документ Microsoft Office Word и привязка элементов управления к данным во время выполнения.
Применение. Сведения этого раздела применяются к проектам уровня приложения для Word 2013 и Word 2010. Дополнительные сведения см. в разделе Доступность функций по типам приложений Office и проектов.
В данном пошаговом руководстве рассмотрены следующие задачи:
Добавление объекта ContentControl в документ во время выполнения.
Создание BindingSource, соединяющего элемент управления с экземпляром набора данных.
Предоставление пользователю возможности пролистывать записи и просматривать их в элементе управления.
Примечание |
---|
На вашем компьютере названия некоторых элементов интерфейса пользователя Visual Studio или их расположение могут отличаться от указанных в нижеследующих инструкциях. Это зависит от имеющегося выпуска Visual Studio и используемых параметров. Дополнительные сведения см. в разделе Параметры Visual Studio. |
Обязательные компоненты
Ниже приведены компоненты, необходимые для выполнения данного пошагового руководства.
-
Выпуск Visual Studio 2012, включающий инструменты разработчика Microsoft Office. Дополнительные сведения см. в разделе [Настройка компьютера для разработки решений Office](bb398242\(v=vs.110\).md).
Word 2013 или Word 2010.
Доступ к работающему экземпляру 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.
Создание нового проекта
Для начала следует создать проект надстройки Word.
Создание нового проекта
Создайте проект надстройки Word с именем Заполнение документов данными из базы данных в Visual Basic или C#.
Дополнительные сведения см. в разделе Практическое руководство. Создание проектов Office в Visual Studio.
Visual Studio откроет файл ThisAddIn.vb или ThisAddIn.cs и добавит проект "Заполнение документов данными из базы данных" в обозреватель решений.
Если на которую нацелен проект .NET Framework 4 или .NET Framework 4.5, добавьте ссылку на сборку Microsoft.Office.Tools.Word.v4.0.Utilities.dll.Эта ссылка необходима для программного добавления элементов управления Windows Forms в документ на последующих этапах.
Создание источника данных
Чтобы добавить типизированный набор данных в проект, следует использовать окно Источники данных.
Добавление типизированного набора данных в проект
Если окно Источники данных не отображается, его отображение в строке меню, выбирая Вид, Другие окна, Источники данных.
Выберите Добавить новый источник данных, чтобы запустить Мастер настройки источника данных.
Щелкните База данных и нажмите кнопку Далее.
Если подключение к базе данных AdventureWorksLT существует, выберите его и нажмите кнопку Далее.
В противном случае нажмите кнопку Новое подключение и с помощью диалогового окна Добавить подключение создайте новое подключение.Дополнительные сведения см. в разделе Практическое руководство. Подключение к данным в базе данных.
На странице Сохранить строку подключения в файл конфигурации приложения нажмите кнопку Далее.
На странице Выбор объектов базы данных разверните узел Таблицы и выберите Customer (SalesLT).
Нажмите кнопку Готово.
Файл AdventureWorksLTDataSet.xsd добавлен в обозреватель решений.Этот файл определяет следующие элементы:
Типизированный набор данных с именем AdventureWorksLTDataSet.Этот набор данных представляет содержимое таблицы Customer (SalesLT) в базе данных AdventureWorksLT.
Адаптер таблиц TableAdapter с именем CustomerTableAdapter.Этот адаптер TableAdapter может использоваться для чтения и записи данных в AdventureWorksLTDataSet.Дополнительные сведения см. в разделе Общие сведения об адаптере таблиц.
Далее в пошаговом руководстве используются оба эти объекта.
Создание элементов управления и их привязка к данным
Интерфейс для просмотра записей базы данных в данном пошаговом руководстве является очень простым и создается внутри документа.Объект единовременно отображает ContentControl одну запись базы данных и два элемента управления Button, которые позволяют пролистывать записи назад и вперед.Элемент управления содержимым использует BindingSource для связи с базой данных.
Дополнительные сведения о привязке элементов управления к данным см. в разделе Привязка данных к элементам управления в решениях Office.
Создание интерфейса в документе
В классе 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 = Globals.Factory.GetVstoObject(currentDocument)
Word.Document currentDocument = this.Application.ActiveDocument; Document extendedDocument = Globals.Factory.GetVstoObject(currentDocument);
Определите несколько диапазонов в начале документа.Эти диапазоны указывают место вставки текста и размещения элементов управления.
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, который, в свою очередь, связан с экземпляром набора данных.
Просмотрите записи базы данных, нажимая кнопки Далее и Назад.
См. также
Задачи
Практическое руководство. Заполнение листов данными из базы данных
Практическое руководство. Заполнение документов данными из базы данных
Практическое руководство. Заполнение документов данными из служб
Практическое руководство. Заполнение документов данными из объектов
Практическое руководство. Прокрутка записей базы данных на листе
Пошаговое руководство. Простая привязка данных в проекте уровня документа
Пошаговое руководство. Сложная привязка данных в проекте уровня документа
Практическое руководство. Заполнение документов данными из объектов
Ссылки
Общие сведения о компоненте BindingSource
Основные понятия
Общие сведения об использовании файлов локальной базы данных в решениях для Office
Общие сведения об источниках данных
Привязка элементов управления Windows Forms к данным в Visual Studio
Общие сведения об использовании файлов локальной базы данных в решениях для Office
Подключение к данным в приложениях Windows Forms