演练:具有 Visual Studio 数据组件的数据绑定网页
更新:2007 年 11 月
许多 Web 应用程序使用多个层构建而成,在中间层中有一个或多个组件,这些组件将数据访问与业务逻辑结合起来。本演练演示如何在网站中构建数据访问组件,并将 Web 服务器控件(GridView 控件)绑定到由该组件管理的数据。数据组件与 Microsoft SQL Server 数据库进行交互,既可以读取数据,也可以写入数据。
本演练演示的任务包括:
创建可以读取和写入数据的组件。
将数据组件作为网页上的数据源引用。
将控件绑定到由数据组件返回的数据。
使用数据组件读取和写入数据。
先决条件
为了完成本演练,您需要:
访问 SQL Server Northwind 数据库。有关下载和安装 SQL Server 示例数据库 Northwind 的信息,请参见位于 Microsoft SQL Server 网站上的“Installing Sample Databases”(安装示例数据库)。
说明: 如果需要有关如何登录到运行 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 中创建了一个网站,则可以使用该网站并转到下一节。否则,按照下面的步骤创建一个新的网站和网页。
创建文件系统网站
打开 Visual Web Developer。
在**“文件”菜单上单击“新建网站”**。
出现**“新建网站”**对话框。
在**“Visual Studio 已安装的模板”之下单击“ASP.NET 网站”**。
在最左边的**“位置”列表上单击“文件系统”**,然后在最右边的“位置”文本框中输入要保存网站网页的文件夹的名称。
例如,键入文件夹名“C:\WebSites\ComponentSample”。
在**“语言”**列表中,单击您想使用的编程语言。
单击**“确定”**。
Visual Web Developer 创建该文件夹和一个名为 Default.aspx 的新页。
创建数据访问组件
在本演练中,将使用向导生成可以对 Northwind 数据库读取和写入数据的组件。该组件包括一个架构文件 (.xsd),此文件描述需要的数据和用于读取和写入数据的方法。无需编写任何代码。在运行时,.xsd 文件被编译到执行在向导中指定的任务的程序集中。
创建数据访问组件
如果该网站没有 App_Code 文件夹,则执行以下操作:
在解决方案资源管理器中,右击该网站的名称。
指向**“添加文件夹”,然后单击“App_Code 文件夹”**。
右击 App_Code 文件夹,然后单击**“添加新项”**。
出现**“添加新项”**对话框。
在**“Visual Studio 已安装的模板”下单击“DataSet”**。
在**“名称”框中,键入“EmployeesObject”,然后单击“添加”**。
出现**“TableAdapter 配置”**向导。
单击**“新建连接”**。
如果出现**“选择数据源”对话框,则单击“Microsoft SQL Server”,然后单击“继续”**。
在**“服务器名称”**框中,输入运行 SQL Server 的计算机的名称。
对于登录凭据,选择与 SQL Server 数据库访问方式相应的选项(集成安全性或具体的 ID 和密码)并输入用户名和密码(如果需要)。
- 如果指定显式凭据,则选择**“保存密码”**复选框。
单击**“选择或输入数据库名”**,然后输入“Northwind”。
单击**“测试连接”,确定连接有效后单击“确定”**。
出现**“TableAdapter 配置”**向导,并且已经在其中填入连接信息。
单击**“下一步”**。
在接下来出现的页中可以选择将连接字符串存储到配置文件中。
选择**“是,将此连接另存为”复选框,然后单击“下一步”**。
可以保留默认的连接字符串名称。
在接下来出现的页中可以选择使用 SQL 语句或存储过程。
单击**“使用 SQL 语句”,然后单击“下一步”**。
使用存储过程在性能和安全性等方面具有一些优点。但是,为了简便起见,在本演练中将使用 SQL 语句。
在接下来出现的页中可以定义 SQL 语句。
在**“表中应装入哪些数据”**下,键入下面的 SQL 语句:
SELECT EmployeeID, LastName, FirstName, HireDate FROM Employees
说明: 可以单击“查询生成器”以使用生成器工具(如果愿意)。
单击**“下一步”**。
在接下来出现的页中可以定义组件将公开的方法。
单击以清除**“填充 DataTable”复选框,然后选择“返回 DataTable”和“创建方法以将更新直接发送到数据库”**复选框。
在本演练中,不需要使用方法填充数据表。但是,您需要一个返回数据的方法,还想让组件包含更新数据库的方法。
在**“方法名称”**框中,键入“GetEmployees”。
您正在命名稍后用于获取数据的方法。
单击**“完成”**。
该向导配置组件并将其显示在组件设计器中,同时显示该组件管理的数据和该组件公开的方法。
保存数据组件,然后关闭组件设计器。
在**“生成”菜单上,单击“生成网站”**以确保组件正确编译。
在页上使用数据组件
现在可以在 ASP.NET 网页中将数据组件用作数据源。若要访问数据组件,请使用 ObjectDataSource 控件,对其进行配置以调用由数据组件公开的数据访问方法。然后可以向页面添加控件并将其绑定到数据源控件。
向页面添加数据源控件
打开 Default.aspx 页并切换到**“设计”**视图。
从**“工具箱”的“数据”**组中,将 ObjectDataSource 控件拖动到页面上。
- 如果未出现**“ObjectDataSource 任务”快捷菜单,请右击 ObjectDataSource 控件,然后单击“显示智能标记”**。
在**“ObjectDataSource 任务”快捷菜单上,单击“配置数据源”**。
出现“配置数据源”向导。
在**“选择业务对象”**列表中,单击 EmployeesObjectTableAdapters.EmployeesTableAdapter。
这是在上一节中创建的组件的类型名称(命名空间和类名)。
单击**“下一步”**。
在**“选择”选项卡的“选择方法”列表中,单击“GetEmployees(), returns EmployeesDataTable”**。
“GetEmployees”方法是在上一节中创建的组件中定义的方法。它返回 SQL 语句的结果,此结果保存在数据控件可以绑定到的 DataTable 对象中。
单击**“完成”**。
现在可以向页面添加数据控件并将其绑定到 ObjectDataSource 控件。在本演练中,将使用 GridView 控件。
向页面添加 GridView 控件并将其绑定到数据
从**“工具箱”的“数据”**组中,将 GridView 控件拖动到页面上。
- 如果不出现**“GridView 任务”快捷菜单,请右击 GridView 控件,然后单击“显示智能标记”**。
在**“GridView 任务”快捷菜单的“选择数据源”列表中,单击“ObjectDataSource1”**,即在上一节中配置的控件的 ID。
GridView 控件重新出现,其中每个由 SQL 语句返回的数据列都占一列。
在“属性”中,验证 DataKeyNames 是否设置为 EmployeeID。
测试该页
现在需要的所有控件都在页面上,可以开始测试该页了。
对页进行测试
按 Ctrl+F5 运行该页。
确认“Employees”表的“EmployeeID”、“LastName”、“FirstName”和“HireDate”列在网格中显示。
关闭浏览器。
GridView 控件请求 ObjectDataSource 控件中的数据。反过来,ObjectDataSource 控件创建数据组件的实例并调用数据组件的 GetEmployees 方法。GetEmployees 方法返回 DataTable 对象,ObjectDataSource 控件将该对象返回到 GridView 控件。
向页面添加更新
创建的数据组件包括更新数据库(更新、插入和删除记录)的 SQL 语句。数据组件的更新功能由向导创建组件时自动生成的方法公开。GridView 控件可以与 ObjectDataSource 控件进行交互以自动启动更新方法。
说明: |
---|
GridView 控件不支持“Insert”。 |
启用更新和删除
右击 GridView 控件,然后单击**“显示智能标记”**。
选择**“启用编辑”**复选框。
选择**“启用删除”**复选框。
说明: 启用删除使您可以永久移除数据库中的记录。不要启用删除,除非正在处理无关紧要的测试数据。
测试更新
现在,可以进行测试以确保可使用组件更新数据库。
测试更新
按 Ctrl+F5 运行该页。
此时,GridView 控件在每行中显示**“编辑”和“删除”**链接。
单击行旁边的**“编辑”**链接。
对行进行更改,然后单击**“更新”**。
将用更新过的数据重新显示网格。
单击行中的**“删除”**链接。
该行即从数据库中永久删除。将重新显示没有该行的网格。
关闭浏览器。
后续步骤
本演练演示如何使用数据组件。您可能还想试验导航的其他功能。例如,您可能希望执行下列操作:
创建自定义数据组件,而不是使用向导。
有关示例,请参见 演练:到自定义业务对象的数据绑定。
限制哪些用户可更改数据。典型的方法是向网站添加成员资格和角色,然后建立规则使业务组件在允许更改数据之前可以进行检查。
有关详细信息,请参见演练:创建具有成员资格和用户登录功能的网站 和演练:通过角色管理网站用户。
请参见
任务
演练:在 Visual Web Developer 中使用网站的共享代码
演练:在 Visual Web Developer 中创建基本网页