演练:具有 Visual Studio 数据组件的数据绑定网页

更新:2007 年 11 月

许多 Web 应用程序使用多个层构建而成,在中间层中有一个或多个组件,这些组件将数据访问与业务逻辑结合起来。本演练演示如何在网站中构建数据访问组件,并将 Web 服务器控件(GridView 控件)绑定到由该组件管理的数据。数据组件与 Microsoft SQL Server 数据库进行交互,既可以读取数据,也可以写入数据。

本演练演示的任务包括:

  • 创建可以读取和写入数据的组件。

  • 将数据组件作为网页上的数据源引用。

  • 将控件绑定到由数据组件返回的数据。

  • 使用数据组件读取和写入数据。

先决条件

为了完成本演练,您需要:

  • 访问 SQL Server Northwind 数据库。有关下载和安装 SQL Server 示例数据库 Northwind 的信息,请参见位于 Microsoft SQL Server 网站上的“Installing Sample Databases”(安装示例数据库)

    3h7eexxe.alert_note(zh-cn,VS.90).gif说明:

    如果需要有关如何登录到运行 SQL Server 的计算机的信息,请联系服务器管理员。

  • Microsoft 数据访问组件 (MDAC) 2.7 版或更高版本。

    如果您使用的是 Microsoft Windows XP 或 Windows Server 2003,那么您已经有了 MDAC 2.7。但是,如果使用的是 Microsoft Windows 2000,则可能必须升级计算机上已经安装的 MDAC 版本。若要下载当前 MDAC 版本,请参见“Data Access and Storage Developer Center”(数据访问和存储开发人员中心)

创建网站

如果已经通过完成演练:在 Visual Web Developer 中创建基本网页中的步骤在 Visual Web Developer 中创建了一个网站,则可以使用该网站并转到下一节。否则,按照下面的步骤创建一个新的网站和网页。

创建文件系统网站

  1. 打开 Visual Web Developer。

  2. 在**“文件”菜单上单击“新建网站”**。

    出现**“新建网站”**对话框。

  3. 在**“Visual Studio 已安装的模板”之下单击“ASP.NET 网站”**。

  4. 在最左边的**“位置”列表上单击“文件系统”**,然后在最右边的“位置”文本框中输入要保存网站网页的文件夹的名称。

    例如,键入文件夹名“C:\WebSites\ComponentSample”。

  5. 在**“语言”**列表中,单击您想使用的编程语言。

  6. 单击**“确定”**。

    Visual Web Developer 创建该文件夹和一个名为 Default.aspx 的新页。

创建数据访问组件

在本演练中,将使用向导生成可以对 Northwind 数据库读取和写入数据的组件。该组件包括一个架构文件 (.xsd),此文件描述需要的数据和用于读取和写入数据的方法。无需编写任何代码。在运行时,.xsd 文件被编译到执行在向导中指定的任务的程序集中。

创建数据访问组件

  1. 如果该网站没有 App_Code 文件夹,则执行以下操作:

    1. 在解决方案资源管理器中,右击该网站的名称。

    2. 指向**“添加文件夹”,然后单击“App_Code 文件夹”**。

  2. 右击 App_Code 文件夹,然后单击**“添加新项”**。

    出现**“添加新项”**对话框。

  3. 在**“Visual Studio 已安装的模板”下单击“DataSet”**。

  4. 在**“名称”框中,键入“EmployeesObject”,然后单击“添加”**。

    出现**“TableAdapter 配置”**向导。

  5. 单击**“新建连接”**。

  6. 如果出现**“选择数据源”对话框,则单击“Microsoft SQL Server”,然后单击“继续”**。

  7. 在**“服务器名称”**框中,输入运行 SQL Server 的计算机的名称。

  8. 对于登录凭据,选择与 SQL Server 数据库访问方式相应的选项(集成安全性或具体的 ID 和密码)并输入用户名和密码(如果需要)。

    • 如果指定显式凭据,则选择**“保存密码”**复选框。
  9. 单击**“选择或输入数据库名”**,然后输入“Northwind”。

  10. 单击**“测试连接”,确定连接有效后单击“确定”**。

    出现**“TableAdapter 配置”**向导,并且已经在其中填入连接信息。

  11. 单击**“下一步”**。

    在接下来出现的页中可以选择将连接字符串存储到配置文件中。

  12. 选择**“是,将此连接另存为”复选框,然后单击“下一步”**。

    可以保留默认的连接字符串名称。

    在接下来出现的页中可以选择使用 SQL 语句或存储过程。

  13. 单击**“使用 SQL 语句”,然后单击“下一步”**。

    使用存储过程在性能和安全性等方面具有一些优点。但是,为了简便起见,在本演练中将使用 SQL 语句。

    在接下来出现的页中可以定义 SQL 语句。

  14. 在**“表中应装入哪些数据”**下,键入下面的 SQL 语句:

    SELECT EmployeeID, LastName, FirstName, HireDate FROM Employees
    
    3h7eexxe.alert_note(zh-cn,VS.90).gif说明:

    可以单击“查询生成器”以使用生成器工具(如果愿意)。

  15. 单击**“下一步”**。

    在接下来出现的页中可以定义组件将公开的方法。

  16. 单击以清除**“填充 DataTable”复选框,然后选择“返回 DataTable”“创建方法以将更新直接发送到数据库”**复选框。

    在本演练中,不需要使用方法填充数据表。但是,您需要一个返回数据的方法,还想让组件包含更新数据库的方法。

  17. 在**“方法名称”**框中,键入“GetEmployees”。

    您正在命名稍后用于获取数据的方法。

  18. 单击**“完成”**。

    该向导配置组件并将其显示在组件设计器中,同时显示该组件管理的数据和该组件公开的方法。

  19. 保存数据组件,然后关闭组件设计器。

  20. 在**“生成”菜单上,单击“生成网站”**以确保组件正确编译。

在页上使用数据组件

现在可以在 ASP.NET 网页中将数据组件用作数据源。若要访问数据组件,请使用 ObjectDataSource 控件,对其进行配置以调用由数据组件公开的数据访问方法。然后可以向页面添加控件并将其绑定到数据源控件。

向页面添加数据源控件

  1. 打开 Default.aspx 页并切换到**“设计”**视图。

  2. 从**“工具箱”“数据”**组中,将 ObjectDataSource 控件拖动到页面上。

    • 如果未出现**“ObjectDataSource 任务”快捷菜单,请右击 ObjectDataSource 控件,然后单击“显示智能标记”**。
  3. 在**“ObjectDataSource 任务”快捷菜单上,单击“配置数据源”**。

    出现“配置数据源”向导。

  4. 在**“选择业务对象”**列表中,单击 EmployeesObjectTableAdapters.EmployeesTableAdapter。

    这是在上一节中创建的组件的类型名称(命名空间和类名)。

  5. 单击**“下一步”**。

  6. 在**“选择”选项卡的“选择方法”列表中,单击“GetEmployees(), returns EmployeesDataTable”**。

    “GetEmployees”方法是在上一节中创建的组件中定义的方法。它返回 SQL 语句的结果,此结果保存在数据控件可以绑定到的 DataTable 对象中。

  7. 单击**“完成”**。

现在可以向页面添加数据控件并将其绑定到 ObjectDataSource 控件。在本演练中,将使用 GridView 控件。

向页面添加 GridView 控件并将其绑定到数据

  1. 从**“工具箱”“数据”**组中,将 GridView 控件拖动到页面上。

    • 如果不出现**“GridView 任务”快捷菜单,请右击 GridView 控件,然后单击“显示智能标记”**。
  2. 在**“GridView 任务”快捷菜单的“选择数据源”列表中,单击“ObjectDataSource1”**,即在上一节中配置的控件的 ID。

    GridView 控件重新出现,其中每个由 SQL 语句返回的数据列都占一列。

  3. 在“属性”中,验证 DataKeyNames 是否设置为 EmployeeID。

测试该页

现在需要的所有控件都在页面上,可以开始测试该页了。

对页进行测试

  1. 按 Ctrl+F5 运行该页。

  2. 确认“Employees”表的“EmployeeID”、“LastName”、“FirstName”和“HireDate”列在网格中显示。

  3. 关闭浏览器。

GridView 控件请求 ObjectDataSource 控件中的数据。反过来,ObjectDataSource 控件创建数据组件的实例并调用数据组件的 GetEmployees 方法。GetEmployees 方法返回 DataTable 对象,ObjectDataSource 控件将该对象返回到 GridView 控件。

向页面添加更新

创建的数据组件包括更新数据库(更新、插入和删除记录)的 SQL 语句。数据组件的更新功能由向导创建组件时自动生成的方法公开。GridView 控件可以与 ObjectDataSource 控件进行交互以自动启动更新方法。

3h7eexxe.alert_note(zh-cn,VS.90).gif说明:

GridView 控件不支持“Insert”。

启用更新和删除

  1. 右击 GridView 控件,然后单击**“显示智能标记”**。

  2. 选择**“启用编辑”**复选框。

  3. 选择**“启用删除”**复选框。

    3h7eexxe.alert_note(zh-cn,VS.90).gif说明:

    启用删除使您可以永久移除数据库中的记录。不要启用删除,除非正在处理无关紧要的测试数据。

测试更新

现在,可以进行测试以确保可使用组件更新数据库。

测试更新

  1. 按 Ctrl+F5 运行该页。

    此时,GridView 控件在每行中显示**“编辑”“删除”**链接。

  2. 单击行旁边的**“编辑”**链接。

  3. 对行进行更改,然后单击**“更新”**。

    将用更新过的数据重新显示网格。

  4. 单击行中的**“删除”**链接。

    该行即从数据库中永久删除。将重新显示没有该行的网格。

  5. 关闭浏览器。

后续步骤

本演练演示如何使用数据组件。您可能还想试验导航的其他功能。例如,您可能希望执行下列操作:

请参见

任务

演练:在 Visual Web Developer 中使用网站的共享代码

演练:在 Visual Web Developer 中创建基本网页

概念

数据源控件概述

对数据源控件使用参数