Welcome 微信登录

首页 / 网页编程 / ASP.NET / ASP.NET 3.5企业级项目开发 第二章 数据访问层(DAL)的开发

ASP.NET 3.5企业级项目开发 第二章 数据访问层(DAL)的开发2011-10-14 cnblogs 小洋本篇的话题主要如下:

问题提出

设计方案

问题提出

数据访问层(DAL)的目标创建一些以便业务层来调用的类和方法。我们之前总是用GridView来绑定 DataSet和DataReader,但是在稍微大点的项目开发中DAL不能直接和用户

界面打交道。

一般来说,DAL是用来和数据库和BLL打交道的,也就是处理BLL和数据库的中间。数据以什么形式在 DAL和BLL之前传递有很多的争论。不同的人有不同的意见,数据传递的形式有:DataSet,强类型的 DataSet,DataReader,自定义实体。在介绍Ling to Sql之后,大家心里会有清晰的答案。在以前的开发中 ,我们一般是采用ADO.NET来和数据库打交道,那么就需要我们的开发人员对ADO.NET有一定的比较深入的 了解,但是当我们用Linq to Sql之后,我们可以很方便的使用DataContext来与数据库拉打交道,而不 需要我们懂得很多的ADO.NET的知识,但是在Linq to Sql的背后还是在采用ADO.NET来和数据库交互的。

还有就是事务处理的问题。关于事务的概念,相信大家都清楚,我也不赘述了。事务处理在什么地方 实现有如下意见:在存储过程中直接用SQL语句来写;在DAL层处理,

在BLL层处理。当然,每一种的选择都有各自的理由和利弊。还有一点要注意的是:不要把事务处理的 代码到处写,如在DAL层中写一点,在BLL中写一点。

设计方案

在设计方案中实际上就是提供几个选择来解决之前我们提出的问题。以下就是两个选择:

1.DAL只要是执行CRUD操作,CRUD是就是:Create,Read,Update,Delete.在.NET Framwework中提供了 很多和数据库打交道的ADO.NET类和方法,如

SqlConnection,SqlCommand,SqlCommand.ExecuteNonQuery()等,用过ADO.NET的朋友应该清楚这些常 用的类,我这里也不罗嗦。

2.SqlHelper

用过ADO.NET的朋友应该知道,在我们开发过程中,很多时候写ADO.NET代码的时候,代码结构和功能 都是大同小异的,所以基于此,微软就开发了Microsoft Data Access Application Block,只要我们调 用其中的一些方法,传入一些参数就行了,不需要我们再去写那些繁琐的ADO.NET代码,因为这个数据访 问块都已经封装好了。其中一个最重要的类就是SqlHelper.这个类是个静态类,提供了很多的方法,如下 :

ExecuteNonQuery

ExecuteDataset

ExecuteReader

ExecuteScalar

FillDataset