在完成DAL层的开发以后,我们开始编写BLL的代码,这次没有像机房收费系统那样,用了很多工厂,设计模式,接口之类的.那时候就是为了学习.这次是为了使用,所以我们从使用出发.用bll直接调用dal层的方法.而网站中只会出现两层.UI和BLL这样看起来比较清晰.
我们基础信息模块,其中业务逻辑比较少,因为都是对数据库的基本增删改查.这样,其中BLL代码量就不多.编写起来比较方便.其中对于新的东西.学到的不是很多.这次BLL主要是对事务有了一定的了解.
事务:通俗的说来就是一组操作,这些操作"要么什么也不做,要么都做完".事务反映了现实世界中要以一个完整的单位提交的一份工作.比如:自动提款机取钱,减少余额,出钱是两个独立的方法.但是这两个方法必须完整执行,或者全不执行.不能把余额减少了,钱没有出来.显然,这样是不科学的.
事务处理起来分为两种:
一种是在sql server中直接用sql语句编写.这样就像是存储过程一样,执行起来效率较高.
sql事务处理有三个控制语句:
Begin transaction 事务开始
Commit transaction 事务提交
Rollback transaction 事务回滚
几点说明:
(1):在sql server中,通常一个事务是以begintransaction开始,到一个匹配的committransaction 或者 rollback transaction 之间所有的语句
(2):commit transaction 表示提交事务的一切操作,使得操作对数据的改变生效.
(3):rollback transaction 表示要撤销该事务提交的一切操作,回滚到事务开始的状态.
举例:
Begintransaction
Insert Student values('01','张三')
If @@error=0
Commit transaction
Else
Rollback transaction
另一种处理事务的方法就是在.net中使用sqlTransacion 处理事务,利用.net定义好的事务处理方法去处理.
其中:对于一个事务处理过程要经过这几个步骤:
(1):得到数据库连接字符串 ,打开连接
/// <summary>
/// 得到连接
/// </summary>
/// <returns></returns>
public SqlConnection GetConnection()
{
sqlConnection.ConnectionString =ConfigurationManager.ConnectionStrings["sqlconn"].ConnectionString;
sqlConnection.Open();
return sqlConnection;
}
(2):开启事务:
/// <summary>
/// 开启事务
/// </summary>
public SqlTransaction TranBegin()
{
sqlTransaction =sqlConnection.BeginTransaction();
return sqlTransaction;
}
其中事务开启使用数据库连接对象sqlConnection 的beginTransaction()方法.
(3):执行要操作的方法
这些放就是你要真正做的一个个的独立方法 比如:较少余额,出钱两个方法.其中这些方法,执行的时候必须在数据库执行方法中指明是事务方法.比如:
sqlCommand.Transaction=实例化的事务名称
然后执行:
sqlCommand.执行
其中这些方法使用Try catch 捕捉错误 如果发生错误,进入第5步,如果成功,
(4):如果成功 提交事务
/// <summary>
/// 提交事务
/// </summary>
public void TranCommit()
{
sqlTransaction.Commit();
}
(5):如果失败:回滚事务
/// <summary>
/// 回滚事务
/// </summary>
public void TranRollback()
{
sqlTransaction.Rollback();
}
(6):关闭数据库连接
sqlConnection.Close();
事务处理让让我们更方便的保持数据库的一致性.对于复杂的逻辑是很有帮助的.
分享到:
相关推荐
这个三层架构是自己学习时写的一个例子,为了帮助更...BLL-----------表示层 Model---------业务实体 DALFactory----数据层的抽象工厂 SQLServerDAL--数据访问层 IDAL----------数据访问层接口定义 Web-----------表现层
本软件是一个工厂模式三层架构例子程序(★特点与难点是在BLL层使用数据库事务,而不在DAL层使用数据库事务)。程序通过WinForm应用程序实现Sql Server 2005,Sqlite 3的增、删、改、查,分页功能。是学习三层架构、...
代码生成器-DAL组件和BLL组件源码BLL层与DAL层生成组件(已上传源码) 上次重写了DAL组件后 感觉很方便可以生成自己需要的DAL代码 所以象天平哥提出建议把BLL组件源码开放出来 在天平哥发布BLL组件源码 并可添加...
可以生成简单三层Models DAL BLL
C#代码模板生成器; Model层;DAL层;BLL层代码自动生成; 连接数据库,查询表字段,创建数据模型; 查询表字段,构造数据逻辑; 查询表字段,构造数据库交互的代码。
本系统采用B/S,采用asp.net 3层结构(DAL----BLL-----USL) 邮件服务器采用WinWebMail 3.8.1.3 标准版,ASP.NET开发 功能模块 注册模块 登录模块 发邮件模块 收邮件模块 漂流瓶模块 有问题找QQ 854248406
【王继彬】典型三层结构程序设计-第四节:业务逻辑层BLL
-------BLL------ 处理应用程序的业务逻辑,被表示层调用。 -------DALFactory----- 抽象工厂,用于创建各种数据对象的方法,这里有配置文件和反射的运用。 -------Model------- Model程序集,...
-------BLL------ 处理应用程序的业务逻辑,被表示层调用。 -------DALFactory----- 抽象工厂,用于创建各种数据对象的方法,这里有配置文件和反射的运用。 -------Model------- Model程序集,存放实体类,用于...
<br>-------BLL------ 处理应用程序的业务逻辑,被表示层调用。 <br>-------DALFactory----- 抽象工厂,用于创建各种数据对象的方法,这里有配置文件和反射的运用。 <br>-------Model------- ...
以C#为开发语言,利用三层架构思想开发的学生信息管理系统。功能包括: (1)登录模块 (2)班级管理-添加记录-修改记录-删除记录-查询记录 (3)学生管理-添加记录-修改记录-删除记录-查询记录 (4)科目管理-添加...
c#三层架构入门讲解三层架构入门讲解(c#)UIL、BLL、DAL三层架构入门讲解(c#)UIL、BLL、DAL
无限级树形(三层开发)源码 DAL-数据层 BLL-逻辑层 Model-实体类层 WebUI-表现层 无限级分类功能
C#简单三层结构设计UI、BLL、DAL 在实际项目中,程序设计都有他的层次结构,比如MVC、MVP、普通的三层结构等等,不过现在用三层结构的相比可能少了,但是也有一些小型项目还是挺实用的 到这里有介绍和下载地址不...
Java课程设计-基于java银行自助在线业务系统源码+项目说明.zip 银行自助在线业务系统目录 一、开发环境与工具 二、项目介绍 1.自助在线业务系统的主要功能如下: 2.项目结构 3.自助在线业务系统代码结构 4.数据库结构...
自己写的一个3层架构,没有用Linq的,就操作一个model。谨供新手学习,可以很快学会类似petshop的3层架构。Model+DAL+IDAL+DALFactory+BLL
本人才开始学ASP.NET,才写的三层架构网站,希望给别人参考,BLL--业务逻辑层,DAL--数据访问层,Model--实体层,Default.aspx--表示层,BLL和DAL和Model是用类库写的.
IS62WV25616BLL-55BI 资料