日期:2010-10-14  浏览次数:20576 次

  导言

  作为web开发人员,我们的生活围绕着数据操作。我们建立数据库来存储数据,写编码来访问和修改数据,设计网页来采集和汇总数据。本文是研究在ASP.NET 2.0中实现这些常见的数据访问模式之技术的长篇系列教程的第一篇。我们将从创建一个软件框架开始,这个框架的组成部分包括一个使用强类型的DataSet的数据访问层(DAL),一个实施用户定义的业务规则的业务逻辑层(BLL),以及一个由共享页面布局的ASP.NET网页组成的表现层。在打下这个后端的基础工作之后,我们将开始转向报表,示范如何显示,汇总,采集,和验证web 应用的数据。这些教程旨在简明扼要,使用了许多屏幕截图,提供了按步就 班(step-by-step)的指导,带你经历这个开发过程。每个教程都有C# 版和VB版,并且附有涉及的完整的编码的下载。(这第一个教程比较长,但以后其他的教程将以更容易消化的篇幅推出。)

  在这些教程中,我们将使用置于App_Data 目录内的微 软SQL Server 2005 Express版的Northwind数据库。除了数据库文件外,App_Data目录还带有用于创建数据库的SQL脚本,万一你想使用别的数据库版本的话。如果你愿意的话,你也可以直接从微软下载这些脚本。如果你使用别的SQL Server版本的Northwind数据库的话,你需要更新Web.config文件中的NORTHWNDConnectionString设置。本教程中的web应用是个基于文件系统的网站项目,是使用Visual Studio 2005 专业版建立起来的。但是,所有的教程都可以在Visual Studio 2005的免费版本Visual Web Developer中运行。

  在这个教程里,我们将从头开始,先创建一个数据访问层(DAL),然后在第二个教程里创建一个业务逻辑层(BLL),在第三个教程里设计页面布局和导航。以后的教程将建立在这三个教程的基础之上。在第一个教程里,我们要讨论的内容多多,所以,请打开Visual Studio,让我们动起手来!

  第一步:创建一个Web项目,配置数据库连接

  在我们开始创建数据访问层(DAL)之前,我们首先需要创建一个网站,以及建立一个数据库。我们从创建一个基于文件系统的ASP.NET 网站开始。次序如下,打开文件(File)菜单,选择新的网站 (New Web Site),系统会显示一个新网站对话框,选择ASP.NET网站模板(Web Site template),设置定 位(Location)列表的选项为文件系统( File System),然后选这一个放置这个网站的文件夹,然后选择编程语 言为C#。


图 1: 创建一个基于文件系统的网站

  Visual Studio会为你生成一个新的网站,同时生成一个名为Default.aspx的网页,和一 个App_Data文件夹。

  网站生成之后,下一步是在Visual Studio的服务器资源管理器(Server Explorer)里为你的数据库添加一个引 用(reference)。把一个数据库添加到服务器资源管理器之后,你就能在Visual Studio环境里添加数据表,存 储过程,视图等等。你也能查看数据库里的数据,手工或用查询生成器(Query Builder)的图形界面建立你自己的查询语句。此外,当我们为DAL创建强类型的DataSet时,我们需要把Visual Studio指向作为DataSet数据源的目标数据库。虽然我们可以在适当时候提供所昀敳獴搨 ???oЁ涉及的数据库连接信息,但假如我们预 先在服务器资源管理器里注册这些数据库的话,Visual Studio会自动把这些数据库填充到一个下拉列表中去 。

  把Northwind数据库添加到服务器资源管理器中去的步骤取决于你想使用放置在App_Data文件夹 里的SQL Server 2005 Express 版本数据库,还是你想使用已经建立好了的SQL Server 2000或2005 数据库服 务器。

  使用置于App_Data文件夹中的数据库

  如果你没有可连接的SQL Server 2000 或2005服务器,或者你就是想避免给数据库服务器添加数据库,你可以使用SQL Server 2005 Express版的Northwind数据库,该数据库位于下载源码中的App_Data文件夹里(NORTHWND.MDF)。

  置于App_Data文件夹里的数据库会被自动添加到服务器资源管理器中。假设你已经在你的机器上安装了SQL Server 2005 Express版本,那么你应该在服务器资源管理器中看到一个名为NORTHWND.MDF的节点,你可以将这个节点扩展开来,浏览其中的数据表,视图,存储过程等等 (参考图2)。

  App_Data文件夹还可以放置微软的Access.mdb数据库文件,跟SQL Server 的数 据库文件类似,这些Access文件会被自动地添加到服务器资源管理器中。如果你不想用任何SQL Server数据库,那么你总归可以下载微软Access版本的Northwind 数据库文件,然后将其放置于App_Data文件夹中。但记住,Access数据库没有SQL Server那么多功能,而且它并不是设计来在网站情形下使用的。此外,在后面几个教程里将用到Access数据库不支持的数据库层次的功能。

  连接到微软SQL Server 2000或2005数据库服务器中的数据库

  或者,你也可以连接到安装在数据库服务器上的Northwind数据库。假如数据库服务器上尚未安装Northwind数据库的话,你首先必须运行本教程下载文件中的安装脚本来把数据库添加到数据库服务器上去,或者你也可以从微软网站上直接下载SQL Server 2000的Northwind数据库以及安装脚本

  安装数据库完毕之后,去Visual Studio中的服务器资源管理器,在数据连接(Data Connections)节点上按右鼠标,选择“添加连接(Add Connection)”。如果你看不到服务器资源管理器,去菜单“查看(View)”点击 “服务器资源管理器”,或者按组合键Ctrl+Alt+S来打开服务器资源管理器。这会打开添加连接的对话框,在这上面,你可以设置需要连接的服务器,认证信息,以及数据库名字。在你成功配置数据库连接信息,按OK按钮之后,数据库就会被添加成数据连接节点之下的一个节点。然后,你就可以扩展数据库节点来浏览数据表,视图,存储过程等等。


图 2: 添加一个到你的数据库服务器上的Northwind数据库的连接

  第二步:创建一个数据访问层

  与数据打交道时,一种做法是把跟数据相关的逻辑直接放在表现层中(在一个web应用里,ASP.NET网页构成了表现层)。其形式一般是在ASP.NET 网页的编码部分写ADO.NET 编码或者在标识符部 分使用SqlDataSource控件。在这两种形式里