`
webcode
  • 浏览: 5946073 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

教务系统--BLL层设计

 
阅读更多

在完成DAL层的开发以后,我们开始编写BLL的代码,这次没有像机房收费系统那样,用了很多工厂,设计模式,接口之类的.那时候就是为了学习.这次是为了使用,所以我们从使用出发.bll直接调用dal层的方法.而网站中只会出现两层.UIBLL这样看起来比较清晰.

我们基础信息模块,其中业务逻辑比较少,因为都是对数据库的基本增删改查.这样,其中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();

事务处理让让我们更方便的保持数据库的一致性.对于复杂的逻辑是很有帮助的.

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics