没有合适的资源?快使用搜索试试~ 我知道了~
Scott Mitchell 的ASP.NET 2.0数据教程
5星 · 超过95%的资源 需积分: 9 187 下载量 155 浏览量
2007-09-13
14:18:08
上传
评论
收藏 3.33MB PDF 举报
温馨提示
试读
104页
Scott Mitchell 的ASP.NET 2.0数据教程(1-8)
资源推荐
资源详情
资源评论
1
1.ScottMitchell 的 ASP.NET2.0 数据教程之一 : 创建一个数据访问层 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
2.ScottMitchell 的 ASP.NET2.0 数据教程之二:创建一个业务逻辑层 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3. 母板页和站点导航 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
使用 ObjectDataSource 展现数据 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
7. 使用 DropDownList 过滤的主 / 从报表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
8. 使用两个 DropDownList 过滤的主 / 从报表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
2
1.
1.
1.
1.
Scott
Scott
Scott
Scott
Mitchell
Mitchell
Mitchell
Mitchell
的 ASP.NET
ASP.NET
ASP.NET
ASP.NET
2.0
2.0
2.0
2.0
数据教程之一 :
:
:
:
创建一个数据访问层
在 ASP.NET
ASP.NET
ASP.NET
ASP.NET
2.0
2.0
2.0
2.0
中操作数据 ::
::
::
::
创建一个数据访问层
原文 | 下载本教程中的编码例子 | 下载本教程的英文 PDF 版
导言
作为 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
Web
Web
Web
项目,配置数据库连接
在我们开始创建数据访问层 (DAL) 之前,我们首先需要创建一个网站,以及建立一个数据库。我们从创建一个基
于文件系统的 ASP.NET 网站开始。次序如下,打开文件 (File) 菜单,选择新的网站 (New Web Site) ,系统会显示 一
个新网站对话框,选择 ASP.NET 网站模板 (Web Site template) ,设置定 位 (Location) 列表的选项为文件系统 ( File
System) ,然后选这一个放置这个网站的文件夹,然后选择编程语 言为 C# 。
3
图 1:
1:
1:
1:
创建一个基于文件系统的网站
Visual Studio 会为你生成一个新的网站,同时生成一个名为 Default.aspx 的网页,和一 个 App_Data 文件夹。
网站生成之后,下一步是在 Visual Studio 的服务器资源管理器 (Server Explorer) 里为你的数据库添加一个引 用
(reference) 。把一个数据库添加到服务器资源管理器之后,你就能在 Visual Studio 环境里添加数据表,存
储过程,
视图等等。你也能查看数据库里的数据,手工或用查询生成器 (Query Builder) 的图形界面建立你自己的查询语句。
此外,当我们为 DAL 创建强类型的 DataSet 时,我们需要把 Visual Studio 指向作为 DataSet 数据源的目标数据库。虽
然我们 可以在适当时候提供所涉及的数据库连接信息, 但假如我们预 先在服务器资源管理器里注册这些数据库 的
话, Visual Studio 会自动把这些数据库填充到一个下拉列表中去 。
把 Northwind 数据库添加到服务器资源管理器中去的步骤取决于你想使用放置在 App_Data 文件夹 里的 SQL Server
2005 Express 版本数据库,还是你想使用已经建立好了的 SQL Server 2000 或 2005 数据库服 务器。
使用置于 App_Data
App_Data
App_Data
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) 节点上按右鼠标, 选
4
择 “ 添加连接 (Add Connection) ” 。 如果你看不到服务器资源管理器, 去菜单 “ 查看 (View) ” 点击 “ 服务器资源管理器 ”
,
或者按组合键 Ctrl+Alt+S 来打开服务器资源管理器。这会打开添加连接的对话框,在这上面, 你可以设置需要连 接
的服务器,认证信息,以及数据库名字。在你成功配置数据库连接信息,按 OK 按钮之后,数据库就会被添加成 数
据连接节点之下的一个节点。然后,你就可以扩展数据库节点来浏览数据表,视图,存储过程等等。
图 2:
2:
2:
2:
添加一个到你的数据库服务器上的 Northwind
Northwind
Northwind
Northwind
数据库的连接
第二步:创建一个数据访问层
与数据打交道时,一种做法是把跟数据相关的逻辑直接放在表现层中 ( 在一个 web 应用里, ASP.NET 网页构成了表
现层 ) 。其形式一般是在 ASP.NET 网页的编码部分写 ADO.NET 编码或者在标识符部 分使用 SqlDataSource
控件。
在这两种形式里,这种做法都把数据访问逻辑与表现层紧密耦合起来了。但推荐 的做法是,把数据访问逻辑从 表
现层分离开来。这个分开的层被称作是数据访问层,简写为 DAL ,一般是通过 一个单独的类库项目来实现的。
这种分层框架的好处在很多文献里都有阐述 ( 详见本教程最后的 “ 附加读物 ” 里 的 资源 ) ,在本系列中我们将采用 这
种方法。
跟底层数据源相关的所有编码,譬如建立到数据库的连接,发出 SELECT , INSERT , UPDATE ,和 DELETE 命 令
等的编码,都应该放置在 DAL 中。表现层不应该包含对 这些数据访问编码的任何引用,而应该调用 DAL 中的编
码来作所有的数据访问请求。 数据访问层包含访问底层数据库数据的方法。 譬如, Northwind 数据库
中, 有
Prod ucts
和 Categories 两个表,它们记录了可供销售的产品以及这些产品 所属的分类。在我们的 DAL 中,我们将有下面这
样的方法:
GetCategories(), 返回所有分类的信息
GetProducts(), 返回所有产品的信息
GetProductsByCategoryID(
categoryID
), 返回属于指定分类的所有产品的信 息
GetProductByProductID(
productID
), 返回指定产品的信息
这些方法,被调用后,将连接到数据库,发出合适的查询,然后返回结果。我们如何返回这些结果是很重要的
。
这些方法可以直接返回数据库查询填充的 DataSet 或者 DataReader , 但理想的办法是把这些结果以
强类 型对象
的
形式返回。一个强类型的对象,其 schema 是编译时严格定义好的,而相比之下,弱类型的对象, 其 schema 在运 行
时之前是未知的。
譬如, DataReader 和普通的 DataSet 是弱类型对象,因为它们的 schema 是被用来填充它们的数据库查询返回的字段
来定义的。要访问弱类型 DataTable 中的一个特定字段,我们需要用这样的句法:
DataTable
.Rows[
index
]
["
columnName
"] 。这个例子中的 DataTable 的弱类型性质表现在于,我们需要通过一个字符串或序号索引来访问字
段名称。而在另一个方面,一个强类型的 DataTable ,它的所有的字段都是通过属性的形式来实现的 ,访问的编
5
码就会象这样:
DataTable
.Rows[
index
].
columnName
。
要返回强类型对象,开发人员可以创建自定义业务对象,或者使用强类型的 DataSet 。开发人员实现的业务对 象
类,其属性往往是对相应的底层数据表的字段的映射。而一个强类型的 DataSet ,则是 Visual Studio 基于数 据库
schema 为你生成的一个类, 其成员的类型都是由这个 schema 决定的。 强类型的 DataSet 本身, 是由继承 于 ADO.N ET
中 DataSet , DataTable ,和 DataRow 类的子类组成的。除了强类型的 DataTable 外,强类型的 DataSet 现在还包括
TableAdapte r 类,这些类包含了填充 DataSet 中的 DataTable 和把 DataTable 的改动传回数据库的各种方法。
注意: 想了解使用强类型 DataSet 比之业务对象的优缺点的更多信息,请参考 设 计数据层组件以及在层间传输数
据 一文。
在这些教程的架构里,我们将使用强类型的 DataSet
。图
3 示范说明了使用强类型的 DataSet 之应用程序的不 同层 间
的流程 (workflow) 。
图 3:
3:
3:
3:
把所有的数据访问编码委托给 DAL
DAL
DAL
DAL
创建强类型的 DataSet
DataSet
DataSet
DataSet
和 Table
Table
Table
Table
Adapter
Adapter
Adapter
Adapter
我们开始创建我们的 DAL , 先给我们的项目添加一个强类型的 DataSet 。 做法如下, 在解决方案管理器里的项目 节
点上按右鼠标,选择 “ 添加新项 (Add a New Item) ” 。在模板列单里选择 DataSet ,将其命名 为 Northwind.xsd 。
图 4:
4:
4:
4:
给你的项目添加一个新的 DataSet
DataSet
DataSet
DataSet
在点击 “ 添加 (Add) ”
按钮后,
Visual Studio 会问我们是否将 DataSet 添加到 App_Code
文件夹中, 选择
“
Yes
”
。 然后
Vi
sual
剩余103页未读,继续阅读
资源评论
- flybird18602012-10-16通俗易懂,感谢分享
蝈蝈(GuoGuo)
- 粉丝: 393
- 资源: 9
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功