.Net事务基础知识讲解

ACID 属性

代表了不可分性、一致性、隔离性和持续性。

不可分性(原子性):在一个操作中涉及两个或两个以上独立的信息,这些信息要么全部提交,要么一个也不提交。

一致性:操作要么创建新的有效的数据状态,要么(如果发生任何错误的话)将所有数据返回到初始状态。

隔离性:操作在没有提交并不与别的任何操作发生任何关系。

持续性:即使发生错误重新启动,保存过的已经提交的数据在正确状态下仍然有效。


相同连接中数据库事务实现方式:数据库实现与Ado.Net实现


实例一:数据库中事务实现方式

create database DataBaseExample

go

use DataBaseExample

go

create table Table1

(

 test varchar(20)

)

go

create table Table2

(

 test varchar(20)

)


create proc TransExample

as

begin transaction

declare @error1 int,@error2 int

insert into table1 values('test1Table1')

select @error1=@@error

insert into table2 values('test2Table1')

select @error2=@@error

if(@error1=0 and @error2=0)

commit transaction

else

rollback transaction


execute TransExample


select * from Table1,Table2


实例二:Ado.Net中事务实现方式

using (SqlConnection conn = new SqlConnection("server=.;database=databaseexample;uid=sa;pwd=sa"))

        {

           conn.Open();

           SqlTransaction trans = conn.BeginTransaction();

           try

           {


               using (SqlCommand cmd = new SqlCommand())

               {

                  cmd.Connection=conn;

                  cmd.Transaction = trans;

                  cmd.CommandText = "insert into table1 values('test1Table1')";

                  cmd.ExecuteNonQuery();

                  cmd.CommandText = "insert into table2 values('test2Table1')";

                  cmd.ExecuteNonQuery();

                  trans.Commit();

               }

           }

           catch

           {

               trans.Rollback();

           }

        }

posted on 2010-10-09 08:56  神奇木马  阅读(277)  评论(0编辑  收藏  举报

导航