一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

asp.net事物处理方法

时间:2011-01-16 编辑:简简单单 来源:一聚教程网

 

最简单扼要的方法

 

 

1.在数据库教程中进行处理,主要使用begin transaction,commit transaction,rollback transaction三个操作来实现,另外通过借助@@error函数获取sql语句执行过程中是否发生了错误。

declare @error int
begin transaction
update accountofbank
set balance=balance+5000 where accountname='张三'
set @error=@error+@@error
update accountofbank
set balance=balance-5000 where accountname='李四'
set @error=@error+@@error
if(@error<>0)
rollback transaction
else
commit transaction
2.使用asp教程.net的事务处理类来操作  
sqlconnection con = new sqlconnection("server=.;database=test;uid=sa;pwd=123456");
con.open();
sqltransaction tran
= con.begintransaction();
sqlcommand cmd
= new sqlcommand();
cmd.connection
= con;
cmd.transaction
= tran;
try
{
cmd.commandtext
= "update accountofbank set balance=balance-5000 where accountname='张三'";
cmd.executenonquery();
cmd.commandtext
= "update accountofbank set balance=balance+5000 where accountname='李四'";
cmd.executenonquery();
tran.commit();
}
catch (exception)
{
tran.rollback();
}
finally
{
con.close();
}
总结一下

事务控制或者事务管理,是指关系型数据库管理系统执行数据库事务的能力。事务是最基本的工作单元,事务中的sql语句必须按照逻辑次序执行,并且要就是成功的执行整个工作单元的操作,要么就一点也不执行。

比如有一个表area,保存用户的家庭地址,在同一时间内,由两个用户同时对着一个表进行操作,一个用户的操作是:
select  * from area
另外一个是:
update area(address)  values(“深圳市福田区园岭西路”)
则第一个用户选出来的地址是原来数据苦中存在的地址,还是更新后的地址呢?结果显示,在select过程中出现修改,则原来的信息是无效的。

在sql server 中,创建事务的语句是:
begin {transaction | tran}[transaction_name]
由于我们这本书不是专门介绍sql server的,所以在此就不涉及得太多了,大家有兴趣可以

 

transactionoptions options = new transactionoptions();
                    options.isolationlevel = system.transactions.isolationlevel.readcommitted;
                    options.timeout = transactionmanager.defaulttimeout;
                    using (transactionscope scope = new transactionscope(transactionscopeoption.required, options))
                    {
//具体内容
}
 

热门栏目