演练:文档级项目中的简单数据绑定

此演练演示文档级项目中的数据绑定的基础知识。将 SQL Server 数据库中的单个数据字段绑定到 Microsoft Office Excel 中的命名区域。此演练还演示如何添加控件,让您能够滚动查看表中的所有记录。

**适用于:**本主题中的信息适用于 Excel 2013 和 Excel 2010 的文档级项目。有关更多信息,请参见按 Office 应用程序和项目类型提供的功能

本演练阐释了以下任务:

  • 为 Excel 项目创建数据源。

  • 将控件添加到工作表中。

  • 滚动查看数据库记录。

说明说明

对于在以下说明中使用的某些 Visual Studio 用户界面元素,您的计算机可能会显示不同的名称或位置。这些元素取决于您所使用的 Visual Studio 版本和您所使用的设置。有关更多信息,请参见 Visual Studio 设置

系统必备

您需要以下组件来完成本演练:

-

Visual Studio 2012 的一个版本,其中包含 Microsoft Office 开发工具。有关更多信息,请参见[将计算机配置为开发 Office 解决方案](bb398242\(v=vs.110\).md)。
  • Excel 2013 或 Excel 2010。

  • 访问带有 Northwind SQL Server 示例数据库的服务器。

  • 从 SQL Server 数据库中读取数据和向其中写入数据的权限。

创建新项目

在此步骤中,您将创建一个 Excel 工作簿项目。

创建新项目

Visual Studio 在设计器中打开新的 Excel 工作簿并将“My Simple Data Binding”项目添加到**“解决方案资源管理器”**中。

创建数据源

使用**“数据源”**窗口向您的项目中添加类型化数据集。

创建数据源

  1. 如果 数据源 窗口不可见,则显示那么,在菜单栏上,选择 查看其他窗口数据源

  2. 选择 添加新数据源 开始 数据源配置向导

  3. 选择**“数据库”,然后单击“下一步”**。

  4. 选择到 Northwind 示例 SQL Server 数据库的数据连接,或者使用**“新建连接”**按钮添加新连接。

  5. 选择或创建连接后,单击**“下一步”**。

  6. 如果选择了该选项,请将其清除以保存连接,然后单击**“下一步”**。

  7. 展开**“数据库对象”窗口中的“表”**节点。

  8. 选择**“Customers”**表旁边的复选框。

  9. 单击“完成”。

向导将**“Customers”表添加到“数据源”窗口。还将一个类型化数据集添加到在“解决方案资源管理器”**中可见的项目中。

将控件添加到工作表

对于此演练,第一个工作表上需要两个命名范围和四个按钮。首先,从**“数据源”窗口添加两个命名范围,这样它们就会自动绑定到数据源。然后,从“工具箱”**添加按钮。

添加两个命名范围

  1. 验证 My Simple Data Binding.xlsx 工作簿在 Visual Studio 中打开设计器,与 Sheet1 中显示。

  2. 打开**“数据源”窗口并展开“Customers”**节点。

  3. 选择**“CompanyName”**列,然后单击出现的下拉箭头。

  4. 在下拉列表中选择**“NamedRange”,然后将“CompanyName”列拖动到单元格“A1”**。

    在单元格**“A1”**中会创建一个名为 companyNameNamedRange 的 NamedRange 控件。同时,会将一个名为 customersBindingSource 的 BindingSource、一个表适配器和一个 DataSet 实例添加到该项目中。该控件绑定到 BindingSource,接着后者绑定到 DataSet 实例。

  5. 在**“数据源”窗口中选择“CustomerID”**列,然后单击出现的下拉箭头。

  6. 在下拉列表中单击**“NamedRange”,然后将“CustomerID”列拖动到单元格“B1”**。

  7. 另一个名为 customerIDNamedRange 的 NamedRange 控件会在单元格**“B1”**中创建,并且该控件绑定到 BindingSource

添加四个按钮

  1. 从**“工具箱”“公共控件”选项卡向工作表的单元格“A3”**中添加一个 Button 控件。

    此按钮被命名为 Button1。

  2. 按照此顺序在下列单元格中再添加三个按钮,使其名称如下所示:

    单元格

    (名称)

    B3

    Button2

    C3

    Button3

    D3

    Button4

下一步向按钮添加文本,并在 C# 中添加事件处理程序。

初始化控件

设置按钮文本并添加 Startup 事件期间的事件处理程序。

初始化控件

  1. 在**“解决方案资源管理器”中右击“Sheet1.vb”“Sheet1.cs”,再单击快捷菜单上的“查看代码”**。

  2. 向 Sheet1_Startup 方法添加以下代码,从而为每个按钮设置文本。

    With Me
        .Button1.Text = "|<"
        .Button2.Text = "<"
        .Button3.Text = ">"
        .Button4.Text = ">|"
    End With
    
    this.button1.Text = "|<";
    this.button2.Text = "<";
    this.button3.Text = ">";
    this.button4.Text = ">|";
    
  3. 仅对于 C#,向 Sheet1_Startup 方法添加用于处理按钮单击事件的事件处理程序。

    this.button1.Click += new EventHandler(button1_Click);
    this.button2.Click += new EventHandler(button2_Click);
    this.button3.Click += new EventHandler(button3_Click);
    this.button4.Click += new EventHandler(button4_Click);
    

现在添加代码以处理按钮的 Click 事件,以便用户可以浏览记录。

添加用于滚动记录的代码

在每个按钮的 Click 事件处理程序中添加代码以在记录中移动。

移动到第一条记录

  • 添加 Button1 按钮的 Click 事件的事件处理程序,并添加以下代码以移动到第一条记录:

    Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) _
        Handles Button1.Click
    
        Me.CustomersBindingSource.MoveFirst()
    End Sub
    
    private void button1_Click(object sender, System.EventArgs e)
    {
        this.customersBindingSource.MoveFirst();
    }
    

移动到上一条记录

  • 添加 Button2 按钮的 Click 事件的事件处理程序,并添加以下代码以后退一个位置:

    Private Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) _
        Handles Button2.Click
    
        Me.CustomersBindingSource.MovePrevious()
    End Sub
    
    private void button2_Click(object sender, System.EventArgs e)
    {
        this.customersBindingSource.MovePrevious(); 
    }
    

移动到下一条记录

  • 添加 Button3 按钮的 Click 事件的事件处理程序,并添加以下代码以前进一个位置:

    Private Sub Button3_Click(ByVal sender As Object, ByVal e As System.EventArgs) _
        Handles Button3.Click
    
        Me.CustomersBindingSource.MoveNext()
    End Sub
    
    private void button3_Click(object sender, System.EventArgs e)
    {
        this.customersBindingSource.MoveNext();
    }
    

移动到最后一条记录

  • 添加 Button4 的 Click 事件的事件处理程序,并添加以下代码以移动到最后一条记录:

    Private Sub Button4_Click(ByVal sender As Object, ByVal e As System.EventArgs) _
        Handles Button4.Click
    
        Me.CustomersBindingSource.MoveLast()
    End Sub
    
    private void button4_Click(object sender, System.EventArgs e)
    {
        this.customersBindingSource.MoveLast();
    }
    

测试应用程序

现在可以对工作簿进行测试,以确保能浏览数据库中的记录。

测试工作簿

  1. 按 F5 运行项目。

  2. 确认第一条记录显示在单元格**“A1”“B1”**中。

  3. 单击**“>”(Button3) 按钮,然后确认下一条记录出现在单元格“A1”“B1”**中。

  4. 单击其他滚动按钮以确认记录按预期发生变化。

后续步骤

此演练演示将命名范围绑定到数据库中的字段的基本操作。以下是接下来可能要执行的一些任务:

请参见

任务

演练:文档级项目中的复杂数据绑定

其他资源

将数据绑定到 Office 解决方案中的控件

Office 解决方案中的数据