ASP.NET 如何使用 SqlTransaction

ASP.NET 如何使用 SqlTransactiontransaction属性: 1.原子性:事务是一个完整的操作,事务的各元素师不可分的。2.一致性:事务开始时和完成时,数据必须处于一致的状态。3.隔离性:对数据进行修改的所有并发事务是彼此隔离的。4.持久性:事务完成后,它对系统的影响是永久的。  ASP.NET使用SqlTransaction处理事务操作 SqlTransaction类是对SQLSe

大家好,又见面了,我是你们的朋友全栈君。

 

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/133120.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • struts的内置_struts自定义拦截器

    struts的内置_struts自定义拦截器一般我们的web应用都是只有在永固

    2022年9月25日
    0
  • easyOCR_功能测试包括

    easyOCR_功能测试包括EasyOCR是一个用python编写的OCR三方库。git地址为:https://github.com/JaidedAI/EasyOCR。由于笔者从事的是java开发,对python并不熟悉,所以实际上是从python开发环境安装开始的。类似于jdk,python开发也依赖于python环境,而因为python各版本之间差异很大,很多时候不同组件依赖的是不同的python版本,甚至小版本之间也存在兼容性问题,所以网上推荐使用的是Anaconda环境管理软件。Anaconda可以隔离出多个pytho

    2025年5月23日
    0
  • 配置windows怎么关闭计算机,准备配置WINDOWS,请勿关闭计算机。

    配置windows怎么关闭计算机,准备配置WINDOWS,请勿关闭计算机。图片发自简书App早上,想着在台式计算机机上面进行修改些文字,但是,开机后屏幕上一直就是打开电脑后的那一行字:准备配置WINDOWS,请勿关闭计算机。一直那样子。弄得,弄得我没有办法进入机内去修改了。这样,过于依赖的机器之后,有的时候也是一种很不好的事情。回想原来,笔墨时代,就会简单。过去时代,人们生活中依赖机器的事情,并不多,虽说“工欲善其事,必先利其器”,但是所谓的“器”,那时候,不外乎也是些…

    2022年6月26日
    30
  • iOS iOS 地图与定位开发系列教程

    iOS iOS 地图与定位开发系列教程iPhoneSDK提供了三个类来管理位置信息:CLLocationCLLocationManager和CLLHeading(不常用)。除了使用GPS来获取当前的位置信息外,iPhone也可以基于WiFi基站和无线发射塔来获得位置信息。GPS的精度最高,可以精确到米级别,但是也最耗电。1、CLLocationCLLocation类代表一个位置信息,其中还包括了方向和速度。比如我在长安街188号以5公里/小时的速度往西走。CLLocation具有下面的属性和方法:@property.

    2022年7月26日
    1
  • moya + RxSwift 进行网络请求

    moya + RxSwift 进行网络请求1.关于moya如在OC中使用AFNetworking一般,Swift我们用Alamofire来做网络库.而Moya在Alamofire的基础上又封装了一层:官方说moya有以下特性(我也就信了):编译时检查正确的API端点访问.使你定义不同端点枚举值对应相应的用途更加明晰.提高测试地位从而使单元测试更加容易.2.开始1.创建枚举API就像这样:enumAPIManager{c

    2025年7月1日
    1
  • AlertDialog.Builder中的setMultiChoiceItems中的事件处理[通俗易懂]

    AlertDialog.Builder中的setMultiChoiceItems中的事件处理

    2022年1月28日
    32

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号