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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • CSS3影子 box-shadow使用和技巧总结

    CSS3影子 box-shadow使用和技巧总结

    2021年12月17日
  • HTML下划线用虚线表示

    HTML下划线用虚线表示1.html代码abbrstyle=”border-bottom:1pxdotted#000;”>文本abbr>br/>abbrstyle=”border-bottom:1pxdotted#000;”>            abbr>2.显

  • 阿里云服务器开放80端口「建议收藏」

    阿里云服务器开放80端口「建议收藏」阿里云服务器开放80端口1.先登录阿里云官网https://www.aliyun.com/2.点击控制台3.点击左边的三条杆4.点击进去之后,找到云服务器ECS5.点击蓝色字体的服务器名称6.找到安全组,安全组列表,加入安全组,配置规则7.点击入方向里的手动添加8.设置如下图所示的参数,最后记得保存哦9.至此,80端口就设置好了。因为我这里设置了Nginx,所以80端口会被占用10.我们在浏览器上访问,也可以验证成功…

  • upx手动脱壳

    upx手动脱壳upxupx是一个开源的工具,可以到github下载upxupx简单的用法upxsrc.exe命令将src.exe加壳upxsrc.exe-odst.exe命令将src.exe加壳并另存为dst.exeupx手动脱壳

  • 中缀表达式转换为后缀表达式(栈的使用)

    中缀表达式如1*2+(2-1), 其运算符一般出现在操作数之间, 因此称为中缀表达式,也就是大家编程中写的表达式。编译系统不考虑表达式的优先级别, 只是对表达式从左到右进行扫描, 当遇到运算符时, 就把其前面的两个操作数取出, 进行操作。为达到上述目的, 就要将中缀表达式进行改写,变为后缀表达式 如上面的表达式1*2+(2-1), 就变为12*21-+;后缀表达式中不含有括号, 且

  • vue(16)vue-cli创建项目以及项目结构解析[通俗易懂]

    vue(16)vue-cli创建项目以及项目结构解析[通俗易懂]vue-cli创建项目上一篇我们安装了vue-cli,接下来我们就使用该脚手架进行创建项目1.进入一个目录,创建项目创建项目命令如下:vuecreate<ProjectName&g

发表回复

您的电子邮箱地址不会被公开。

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