1)为什么要特别强调如何在三层架构中处理事务?
在讲解这个之前,先要熟悉三层架构是什么(UI层、BLL层、DAL层)。如果还不了解三层架构的话,可以先阅读前一篇文章:http://blog.csdn.net/privatehiroki/article/details/78120598
在三层架构中,如果要同时对两个sql语句进行操作,比如需要增加两个用户的信息,而且保证必须成功,通常的做法是连续调用两次已写好的方法,比如自定义的Add()方法,功能是增加一条记录。但是 要实现事务处理,首先保证在同一个数据库链接中。
先做一个练习,来还原一下上面说的没有事务时如何添加两条记录。
第1步,使用SQLserver创建数据库,名字叫CRUDTest。新建表,名字叫Student。如图所示:
第2步,新建类库文件(DAL层),名字叫Student.DAL。在DAL层下新建SqlHelper类和StudentDAL类,代码分别如下。
SqlHelper类代码:
在讲解这个之前,先要熟悉三层架构是什么(UI层、BLL层、DAL层)。如果还不了解三层架构的话,可以先阅读前一篇文章:http://blog.csdn.net/privatehiroki/article/details/78120598
在三层架构中,如果要同时对两个sql语句进行操作,比如需要增加两个用户的信息,而且保证必须成功,通常的做法是连续调用两次已写好的方法,比如自定义的Add()方法,功能是增加一条记录。但是 要实现事务处理,首先保证在同一个数据库链接中。
先做一个练习,来还原一下上面说的没有事务时如何添加两条记录。
第1步,使用SQLserver创建数据库,名字叫CRUDTest。新建表,名字叫Student。如图所示:
第2步,新建类库文件(DAL层),名字叫Student.DAL。在DAL层下新建SqlHelper类和StudentDAL类,代码分别如下。
SqlHelper类代码:
class SqlHelper
{
private static readonly string connStr = ConfigurationManager.ConnectionStrings["testConn"].ConnectionString;
public static SqlConnection creat