TransactionScope事务
个人理解就是: 吧一些方法封装在TransactionScope里面,如果全部执行成功 那么事务就会提交 方法执行,加入其中一个方法不成功,事务就会自动回滚。代码重用性高
TransactionScope是.Net Framework 2.0滞后,新增了一个名称空间。它的用途是为数据库访问提供了一个“轻量级”[区别于:SqlTransaction]的事物。使用之前必须添加对 System.Transactions.dll 的引用。
下列代码就是一个正在创建的事务,这个事务自身还封装了多个数据库查询。只要任意一个 SqlCommand 对象引发异常,程序流控制就会跳出 TransactionScope 的 using 语句块,随后,TransactionScope 将自行释放并回滚该事务。由于这段代码使用了 using 语句,所以 SqlConnection 对象和 TransactionScope 对象都将被自动调用Dispose()释放。由此可见,只需添加很少的几行代码,您就可以构建出一个事务模型,这个模型可以对异常进行处理,执行结束后会 自行清理,此外,它还可以对命令的提交或回滚进行管理。
//创建TransactionScope
using (TransactionScope tsCope= new TransactionScope()) { using (SqlConnection cn2005= new SqlConnection(someSql2005))
{
SqlCommand cmd= new SqlCommand(sqlUpdate, cn2005); cn2005.Open();
cmd.ExecuteNonQuery(); }
using (SqlConnection cn2005= new SqlConnection(anotherSql2005)) { SqlCommand cmd= new SqlCommand(sqlDelete, cn2005);
cn2005.Open();
cmd.ExecuteNonQuery(); }
tsCope.Complete();
}
Server=(local)SQL2005;Database=Northwind;Integrated Security=SSPI;auto-enlist=false
上面所看到的示例中我们使用了TransactionScope的默认设置。TransactionScope有三种模式:
如果已经存在一个事务,那么这个事务范围将加入已有的事务。否则,它将创建自己的事务。
如果处于当前活动事务范围内,那么这个事务范围既不会加入氛围事务 (ambient transaction),也不会创建自己的事务。当部分代码需要留在事务外部时,可以使用该选项。
TransactionScope事务相关推荐
- c#传统SqlTransaction事务和TransactionScope事务
事务有很多种,看了一些关于事务的问题,这里做下笔记····· 事务时单个的工作单位.如果某一事务成功,则在该事务中进行的所有数据更改均会提交,成为数据库中永久的组成部分.若果事务遇到错误,则必须取消或 ...
- EF 多线程TransactionScope事务异常事务(进程 ID 58)与另一个进程被死锁在 锁 资源上,并且已被选作死锁牺牲品。请重新运行该事务。
在使用EF的TransactionScope事务时,如果多线程程序,经常会抛出如下异常 {"事务(进程 ID 58)与另一个进程被死锁在 锁 资源上,并且已被选作死锁牺牲品.请重新运行该事务 ...
- TransactionScope事务简介
在.NET 1.0/1.1 版本我们使用SqlTransaction.处理事务 string connString = ConfigurationManager.ConnectionStrings[& ...
- 【转】TransactionScope事务简介
在.NET 1.0/1.1 版本我们使用SqlTransaction.处理事务 string connString = ConfigurationManager.ConnectionStrings[& ...
- TransactionScope 事务使用说明
TransactionScope是.Net Framework 2.0滞后,新增了一个名称空间.它的用途是为数据库访问提供了一个"轻量级"[区别于:SqlTransaction]的 ...
- 第七节: EF的三种事务的应用场景和各自注意的问题(SaveChanges、DBContextTransaction、TransactionScope)
一. 什么是事务 我们通俗的理解事务就是一系列操作要么全部成功.要么全部失败(不可能存在部分成功,部分失败的情况). 举一个事务在我们日常生活中的经典例子:两张银行卡(甲.乙),甲向乙转钱,整个过程需 ...
- .net EF 事务TransactionScope和BeginTransaction的用法
事务就是确保一次数据库操作,所有步骤都成功,如果哪一步出错了,整个操作都将回滚.在EF使用事务有两种方案,一种是EF自带的.BeginTransaction()方法,另一种是使用Transaction ...
- .net mysql transactionscope_C#中的事务TransactionScope
TransactionOptions transactionOption = newTransactionOptions();//设置事务隔离级别 transactionOption.Isolatio ...
- 数据库事务与TransactionScope代码事务区别
1.TransactionScope代码事务 TransactionScope 类 位于using System.Transactions;命名空间下,需要在引用中手动加入.该类不能被继承. //// ...
最新文章
- R语言:计算各种距离
- python输出大小不同的字体_python – 为什么我的truetype字体大小为11渲染与windows不同?...
- 从docker 中抓取jvm heap 信息, 并且分析
- 10000以内回文数java,求10到10000有哪些回文数?用C语言编写 并且用数组
- boost::mp11::mp_starts_with相关用法的测试程序
- 前端学习(2738):重读vue电商网站48之通过 chainWebpack 自定义打包入口
- 位枚举(Bit Flags)
- 编程语言对比 引用数据类型-列表
- python源文件后缀_Python怎样获取文件扩展名
- 贝叶斯公式的直观理解(先验概率/后验概率)(未完)
- go - reflect
- Node.js 教程第十四篇——Socket.io
- 程序员所需要的数学知识都这里了
- Android hardware简易流程
- MySQL实战宝典 高可用架构篇 17 高可用设计三大高可用设计架构方案
- 山东省高中学业水平考试计算机考试教材,2017年山东高中学业水平考试科目
- 把色*版 “微信” 的底裤都给挖出来了,网友: 草率了。。。
- java计算机毕业设计科院垃圾分类系统源码+数据库+系统+lw文档+mybatis+运行部署
- 少儿编程网站源码和scratch课程
- Python实现各种加密,接口加解密不说难
热门文章
- LC-1732. 找到最高海拔
- “中国IT就业训练营”正式启动 首次校园公开课成功举办
- java 统计图 mysql_Mysql统计每年每个月的数据(前端页面统计图实现)
- java数组和链表6_java的数组和链表从熟系到陌生
- 桌面计算机休眠快捷键,win10系统桌面休眠快捷键设置的具体技巧
- 【目录】办公技能集合
- 安装jdk过程中报错1335缺少cda文件
- 亿级App陌陌发力移动直播 率先拥抱视频社交
- android省电模式 原理,Android省电模式侦听器?
- Hadoop架构模型