演练:使用缓存的数据集创建主/从关系
更新:2007 年 11 月
适用对象 |
---|
本主题中的信息仅适用于指定的 Visual Studio Tools for Office 项目和 Microsoft Office 版本。 项目类型
Microsoft Office 版本
有关更多信息,请参见按应用程序和项目类型提供的功能。 |
本演练演示如何在工作表上创建主/从关系,以及如何缓存数据,以使解决方案可以脱机使用。
通过此演练,您将学会如何执行以下任务:
将控件添加到工作表中。
设置要在工作表中缓存的数据集。
添加用于滚动记录的代码。
测试项目。
说明: |
---|
以下说明中的某些 Visual Studio 用户界面元素在计算机上出现的名称或位置可能会不同。您安装的 Visual Studio 版本以及使用的设置决定了这些元素。有关更多信息,请参见 Visual Studio 设置。 |
先决条件
若要完成此演练,您需要:
Visual Studio Tools for Office(Visual Studio 2008 专业版 和 Visual Studio Team System 的可选组件)。
Microsoft Office Excel 2003 或 Microsoft Office Excel 2007。
对 Northwind SQL Server 示例数据库的访问。数据库可位于开发计算机上或服务器上。
从 SQL Server 数据库中读取数据和向其中写入数据的权限。
创建新项目
在此步骤中,您将创建一个 Excel 工作簿项目。
创建新项目
- 使用 Visual Basic 或 C#,创建一个 Excel 工作簿项目并将其命名为“My Master-Detail”。确保已选择“创建新文档”。有关更多信息,请参见如何:创建 Visual Studio Tools for Office 项目。
Visual Studio 在设计器中打开新的 Excel 工作簿,并将“My Master-Detail”项目添加到“解决方案资源管理器”中。
创建数据源
使用“数据源”窗口向您的项目中添加类型化数据集。
创建数据源
如果“数据源”窗口不可见,请单击“数据”菜单上的“显示数据源”。
单击“添加新数据源”以启动“数据源配置向导”。
选择“数据库”,然后单击“下一步”。
选择到 Northwind 示例 SQL Server 数据库的数据连接,或者使用“新建连接”按钮添加新连接。
选择或创建连接后,单击“下一步”。
如果选择了该选项,请将其清除以保存连接,然后单击“下一步”。
展开“数据库对象”窗口中的“表”节点。
选择“Orders”表,然后选择“Order Details”表。
单击“完成”。
向导将这两个表添加到“数据源”窗口中。还将一个类型化数据集添加到在“解决方案资源管理器”中可见的项目中。
将控件添加到工作表
在此步骤中,将在第一个工作表中添加一个命名范围、一个列表对象和两个按钮。首先,从“数据源”窗口添加命名范围和列表对象,从而使其自动绑定至数据源。然后,从“工具箱”添加按钮。
添加命名范围和列表对象
验证“My Master-Detail.xls”工作簿在 Visual Studio 设计器中是否已打开,并且其中是否显示“Sheet1”。
打开“数据源”窗口,然后展开“Orders”节点。
选择“OrderID”列,然后单击出现的下拉箭头。
单击下拉列表中的“NamedRange”,然后将“OrderID”列拖至单元格“A2”中。
将在单元格“A2”中创建一个名为 OrderIDNamedRange 的 NamedRange 控件。同时,会将一个名为 OrdersBindingSource 的 BindingSource、一个表适配器和一个 DataSet 实例添加到该项目中。该控件绑定到 BindingSource,接着后者绑定到 DataSet 实例。
向下滚动通过“Orders”表下的列。该列表的底部是“Order Details”表;该表位于此处是因为它是“Orders”表的子表。选择这个“Order Details”表,而不是与“Orders”表处于同一层的某个表,然后单击出现的下拉箭头。
单击下拉列表中的“ListObject”,然后将“Order Details”表拖至单元格“A6”中。
将在单元格“A6”中创建一个名为“Order_DetailsListObject”的 ListObject 控件,并将其绑定到 BindingSource。
添加两个按钮
从“工具箱”的“公共控件”选项卡向工作表的单元格“A3”中添加一个 Button 控件。
此按钮被命名为 Button1。
将另一个 Button 控件添加到工作表的单元格“B3”中。
此按钮被命名为 Button2。
接下来,标记将在文档中缓存的数据集。
缓存数据集
通过将数据集设置为 public 并设置“CacheInDocument”属性,可标记要在文档中缓存的数据集。
缓存数据集
在组件栏中选择“NorthwindDataSet”。
在“属性”窗口中,将“Modifiers”属性更改为“Public”。
启用缓存之前,必须将数据集设置为 public。
将“CacheInDocument”属性更改为“True”。
下一步是向按钮中添加文本,并在 C# 中添加用于将事件处理程序挂钩的代码。
初始化控件
在处理 Startup 事件期间,设置按钮文本并添加事件处理程序。
初始化数据和控件
在“解决方案资源管理器”中右击“Sheet1.vb”或“Sheet1.cs”,再单击快捷菜单上的“查看代码”。
将以下代码添加到 Sheet1_Startup 方法中,以设置按钮文本。
Me.Button1.Text = "<" Me.Button2.Text = ">"
this.button1.Text = "<"; this.button2.Text = ">";
仅对于 C#,向 Sheet1_Startup 方法添加用于处理按钮单击事件的事件处理程序。
this.button1.Click += new EventHandler(button1_Click); this.button2.Click += new EventHandler(button2_Click);
添加用于滚动记录的代码
在每个按钮的 Click 事件处理程序中添加代码以在记录中移动。
滚动记录
为 Button1 的 Click 事件添加事件处理程序,并添加以下代码以在记录中向后移动:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles Button1.Click Me.OrdersBindingSource.MovePrevious() End Sub
private void button1_Click(object sender, EventArgs e) { this.ordersBindingSource.MovePrevious(); }
为 Button2 的 Click 事件添加事件处理程序,并添加以下代码以在记录中向前移动:
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles Button2.Click Me.OrdersBindingSource.MoveNext() End Sub
private void button2_Click(object sender, EventArgs e) { this.ordersBindingSource.MoveNext(); }
测试应用程序
现在您可以测试工作簿,以确保数据按预期效果显示,并且可以脱机使用该解决方案。
测试数据缓存
按 F5。
验证命名范围和列表对象是否被来自数据源的数据所填充。
通过单击按钮,滚动一些记录。
保存工作簿,然后关闭工作簿和 Visual Studio。
禁用到数据库的连接。如果数据库位于服务器上,则拔掉计算机的网线,或者如果数据库位于开发计算机上,则停止 SQL Server 服务。
打开 Excel,然后从 \bin 目录(在 Visual Basic 中为 \My Master-Detail\bin,在 C# 中为 \My Master-Detail\bin\debug)打开“My Master-Detail.xls”。
滚动一些记录,以查看断开连接后工作表是否操作正常。
重新连接数据库。如果数据库位于服务器上,则将计算机再次连接到网络,或者如果数据库位于开发计算机上,则启动 SQL Server 服务。
后续步骤
本演练演示在工作表上创建主/从数据关系及缓存数据集的基本操作。下一步可能要执行以下几项任务:
部署解决方案。有关更多信息,请参见部署 Office 解决方案
从其他项目的缓存中检索数据。有关更多信息,请参见如何:从服务器上的工作簿中检索缓存的数据。