从数据库事务开始
在很早的以前,我们要实现一个事务通常是基于SQL的数据库事务,一般的通过SQL查询语言来实现,如下所示,同时更新两本书的价格:
BEGIN TRANSACTION
UPDATEtb_BookSETPrice=122 WHEREIDENT_CURRENT=1001
UPDATEtb_BookSETPrice=88 WHEREIDENT_CURRENT=1002
IF@@ERROR<>0
BEGIN
ROLLBACK TRANSACTION
END
ELSE
COMMIT TRANSACTION
ADO.NET事务和分布式事务
随着.NET技术的不断发展,可通过ADO.NET来实现,这样我们可以将事务更好的应用在业务逻辑中,而非数据库存储中,这样能够更好的实现业务和存储分离,使的事务被业务逻辑所控制,数据库专注于数据存储,达到各负其责的作用,在ADO.NET中事务的写法是:
using(DbTransactiontransaction = connection.BeginTransaction())
{
command.Transaction = transaction;
try{
command.ExecuteNonQuery();
transaction.Commit();
}
catch(Exceptione)
{
transaction.Rollback();