演练:VSTO 外接程序项目中的简单数据绑定
可以将数据绑定到 VSTO 外接程序项目中的宿主控件和 Windows 窗体控件。 本演练演示如何在运行时向 Microsoft Office Word 文档中添加控件并将控件绑定到数据。
适用于: 本主题中的信息适用于 Word 的 VSTO 外接程序项目。 有关详细信息,请参阅办公室应用程序和项目类型提供的功能。
本演练阐释了以下任务:
在运行时向文档中添加 ContentControl 。
创建用于将该控件连接到某个数据集实例的 BindingSource 。
使用户可以滚动浏览记录以及在控件中查看记录。
注意
以下说明中的某些 Visual Studio 用户界面元素在计算机上出现的名称或位置可能会不同。 这些元素取决于你所使用的 Visual Studio 版本和你所使用的设置。 有关详细信息,请参阅个性化设置 IDE。
先决条件
你需要满足以下条件才能完成本演练:
Visual Studio 的一个版本,其中包含 Microsoft Office 开发人员工具。 有关详细信息,请参阅配置计算机以开发办公室解决方案。
Word 2013 或 Word 2010。
对附加了
AdventureWorksLT
示例数据库且正在运行的 SQL Server 2005 或 SQL Server 2005 Express 实例的访问权限。 可以从 SQL Server 示例 GitHub 存储库下载AdventureWorksLT
数据库。 有关附加数据库的详细信息,请参阅下列主题:若要使用 SQL Server Management Studio 或 SQL Server Management Studio Express 附加数据库,请参阅如何:附加数据库(SQL Server Management Studio)。
若要使用命令行附加数据库,请参阅 “如何:将数据库文件附加到 SQL Server Express”。
创建新项目
第一步是创建 Word VSTO 外接程序项目。
创建新项目
使用 Visual Basic 或 C# 创建一个名为“从数据库填充文档” 的 Word VSTO 外接程序项目。
有关详细信息,请参阅“如何:在 Visual Studio 中创建办公室项目。
Visual Studio 将打开 ThisAddIn.vb 或 ThisAddIn.cs 文件,并将“填充文档”从数据库项目添加到解决方案资源管理器。
如果项目面向 .NET Framework 4 或 .NET Framework 4.5,请添加对 Microsoft.办公室的引用。Tools.Word.v4.0.Utilities.dll 程序集。 在本演练后面的部分中,需要此引用才能以编程方式向文档中添加 Windows 窗体控件。
创建数据源
使用 “数据源” 窗口将类型化数据集添加到项目中。
向项目中添加类型化数据集
如果“数据源”窗口不可见,请通过菜单栏选择“查看>其他 Windows>数据源”来显示它。
选择 “添加新数据源” 以启动 “数据源配置向导”。
单击“数据库” ,然后单击“下一步” 。
如果已与
AdventureWorksLT
数据库建立连接,请选择此连接,然后单击“下一步” 。否则,单击“新建连接” ,然后使用“添加连接” 对话框创建新连接。 有关详细信息,请参阅添加新连接。
在“将连接字符串保存到应用程序配置文件中” 页中,单击“下一步” 。
在“选择数据库对象” 页中展开“表” ,再选择“Customer (SalesLT)” 。
单击“完成”。
AdventureWorksLTDataSet.xsd 文件将添加到解决方案资源管理器。 此文件定义以下各项:
一个名为
AdventureWorksLTDataSet
的类型化数据集。 此数据集表示 AdventureWorksLT 数据库中的“Customer (SalesLT)” 表的内容。名为
CustomerTableAdapter
TableAdapter 的表。 此 TableAdapter 可用于读取和写入数据AdventureWorksLTDataSet
。 有关详细信息,请参阅 TableAdapter 概述。在本演练后面的部分中,你将使用这两个对象。
创建控件并将控件绑定到数据
本演练中用于查看数据库记录的界面是基本的,它直接在文档中创建。 一个 ContentControl 一次显示一条数据库记录,两个 Button 控件允许你以前后滚动的方式查看记录。 该内容控件使用 BindingSource 来连接到数据库。
有关将数据绑定控件的详细信息,请参阅将数据绑定到办公室解决方案中的控件。
在文档中创建界面
在
ThisAddIn
类中声明下列控件,以显示和滚动查看Customer
数据库的AdventureWorksLTDataSet
表。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
数据库中的信息填充数据集。将以下代码添加到
ThisAddIn_Startup
方法中。 这会生成一个扩展文档的宿主项。 有关详细信息,请参阅 运行时在 VSTO 外接程序中扩展 Word 文档和 Excel 工作簿。在文档开始处定义多个范围。 这些范围标识用于插入文本和放置控件的位置。
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;
将界面控件添加到前面定义的范围内。
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 控件添加两个事件处理程序。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);
添加下面的代码,以浏览数据库记录。
测试外接程序
打开 Word 后,内容控件随即显示 AdventureWorksLTDataSet
数据集中的数据。 通过单击“下一条” 和“上一条” 按钮来滚动查看数据库记录。
若要测试 VSTO 外接程序
按 F5 。
即会创建一个名为
customerContentControl
的内容控件,并向该控件填充数据。 同时,向项目添加了一个名为adventureWorksLTDataSet
的数据集对象和一个名为 BindingSource 的customerBindingSource
。 已将 ContentControl 绑定到 BindingSource,而后者又绑定到该数据集对象。单击“下一条” 和“上一条” 按钮来滚动查看数据库记录。
相关内容
- 办公室解决方案中的数据
- 将数据绑定到办公室解决方案中的控件
- 如何:使用数据库中的数据填充工作表
- 如何:使用数据库中的数据填充文档
- 如何:使用服务中的数据填充文档
- 如何:使用对象中的数据填充文档
- 如何:在工作表中滚动浏览数据库记录
- 如何:使用主机控件中的数据更新数据源
- 演练:文档级项目中的简单数据绑定
- 演练:文档级项目中的复杂数据绑定
- 在办公室解决方案中使用本地数据库文件概述
- 添加新数据源
- 在 Visual Studio 中将 Windows 窗体控件绑定到数据
- 如何:使用对象中的数据填充文档
- 如何:使用主机控件中的数据更新数据源
- 在办公室解决方案中使用本地数据库文件概述
- BindingSource 组件概述