ASP.NET 如何使用 SqlTransaction

39 篇文章 0 订阅

 

transaction属性:

 

1.原子性:事务是一个完整的操作,事务的各元素师不可分的。

2.一致性:事务开始时和完成时,数据必须处于一致的状态。

3.隔离性:对数据进行修改的所有并发事务是彼此隔离的。

4.持久性:事务完成后,它对系统的影响是永久的。

 

 

ASP.NET使用SqlTransaction处理事务操作

 

SqlTransaction类是对SQL Server数据库进行事务处理的类,该类的实例由SqlConnection类实例的BeginTransaction方法创建,表示在该数据库连接实例上开始一个数据库事务,创建SqlTransaction类实例后,在程序中使用该实例的Commit方法提交事务,或者使用该类的Rollback方法回滚事务。

 

下面的示例创建一个 SqlConnection 和一个 SqlTransaction。此示例演示如何使用BeginTransactionCommitRollback 等方法。出现任何错误时事务都会回滚。Try/Catch 错误处理用于处理尝试提交或回滚事务时的所有错误。

 

private static void ExecuteSqlTransaction(string connectionString)

        {

            using (SqlConnection connection = new SqlConnection(connectionString))

            {

                connection.Open();

                SqlCommand command = connection.CreateCommand();

                SqlTransaction transaction;  

                transaction = connection.BeginTransaction("SampleTransaction");

                command.Connection = connection;

                command.Transaction = transaction;

                try

                {

                    command.CommandText =

                        "Insert into Department (ID, Name) VALUES (1, '工程部')";

                    command.ExecuteNonQuery();

                    command.CommandText =

                        "Insert into Users(ID, Name,DepartmentID) VALUES (1, 'xyz',1)";

                    command.ExecuteNonQuery();

                    transaction.Commit();

                }

                catch (Exception ex)

                {

                   transaction.Rollback();

                }

            }

        }


 

注意:在提交或回滚 SqlTransaction 时,应始终使用 Try/Catch 进行异常处理。如果连接终止或事务已在服务器上回滚,则Commit 和Rollback 都会生成InvalidOperationException

 

参考资料: SqlTransaction事务的用法     http://www.studyofnet.com/news/193.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值