TransactionScope事务使用】的更多相关文章

事务有很多种,看了一些关于事务的问题,这里做下笔记····· 事务时单个的工作单位.如果某一事务成功,则在该事务中进行的所有数据更改均会提交,成为数据库中永久的组成部分.若果事务遇到错误,则必须取消或回滚,所有数据均被更改清除. 属性: 1.原子性:事务是一个完整的操作,事务的各元素师不可分的. 2.一致性:事务开始时和完成时,数据必须处于一致的状态. 3.隔离性:对数据进行修改的所有并发事务是彼此隔离的. 4.持久性:事务完成后,它对系统的影响是永久的. 1.连接相关SqlTransactio…
微软自带的TransactionScope(.Net Framework 2之后)是个好东东,提供的功能也很强大. 首先说说TransactionScope是什么,并能为我们做什么事情.其实看Transaction(事务)这个单词,我想大家已经能猜到个大概.不同于SqlTransaction的事务,因为现在做的项目都有不同的分层架构,如果不在数据库操作层里面做的话,那么使用TransactionScope是一种理想的方式,它是一个轻量级的事务类.所谓事务,就好比两个串联的开关,控制着一个灯泡,这…
最近在园子里看到一篇关于TransactionScope的文章,发现事务和并发控制是新接触Entity Framework和Transaction Scope的园友们不易理解的问题,遂组织此文跟大家共同探讨. 首先事务的ACID特性作为最基础的知识我想大家都应该知道了.ADO.NET的SQLTransaction就是.NET框架下访问SqlServer时最底层的数据库事务对象,它可以用来将多次的数据库访问封装为“原子操作”,也可以通过修改隔离级别来控制并发时的行为.TransactionScop…
TransactionScope是.Net Framework 2.0滞后,新增了一个名称空间.它的用途是为数据库访问提供了一个“轻量级”[区别于:SqlTransaction]的事物.使用之前必须添加对 System.Transactions.dll 的引用. 下列代码就是一个正在创建的事务,这个事务自身还封装了多个数据库查询.只要任意一个 SqlCommand 对象引发异常,程序流控制就会跳出 TransactionScope 的 using 语句块,随后,TransactionScope…
最近,项目需要将Excel里面的数据导入到数据库里面,但是由于Excel里面的数据的合法性和数据格式的不确定性.所以不可能每读出一条数据,就保存到数据库中. 这就使用到了TransactionScope类,首先简要介绍下这个TransactionScope. 在.net 1.1的时代,还没有TransactionScope类,因此很多关于事务的处理,都交给了SqlTransaction和SqlConnection,每个Transaction是基于每个Connection的.这种设计对于跨越多个程…
.Net 2.0引入了轻量级事务管理器(Lighweight Transaction Manager),即System.Transactions.TransactionManager. 轻量级事务管理器具有最小的开销,对比使用轻量级事务管理器的事务和直接使用本地事务,并没有性能上的差别.         如果一个事务里只有一个资源管理器,轻量级事务管理器可以让资源管理器来管理该事务,而轻量级事务管理器只负责监视他:如果轻量级事务管理器发现有另外一个资源管理器被加入到事务中,轻量级事务管理器则会让…
一个错误的理解就是Complete()方法是提交事务的,这是错误的,事实上,它的作用的表示本事务完成,它一般放在try{}的结尾处,不用判断前台操作是否成功,如果不成功,它会自己回滚. #region 事务问题            using (TransactionScope trans = new TransactionScope())            {                try                {                    InsertUse…
使用TransactionScope类 正如名称所暗示,TransactionScope类用于限定事务代码块,其具有一些明显优点,例如范围与应用程序对象模型无关,同时提供了一个简单直观的编程模型等等.在该类的构造函数内部,TransactionScope对象创建了一个事务(.NET 2.0中默认时轻量级事务管理器),同时将该事务设置给Transaction类的Current属性.由于TransactionScope是可释放对象,所以事务将调用Dispose()方法释放该对象: using(Tra…
using (System.Transactions.TransactionScope T_Scope = new System.Transactions.TransactionScope()) { try { //操作 } catch(Exception e) { //释放 T_Scope.Dispose(); } } //提交事务 T_Scope.Complete(); //配置及注意事项: 1.一般情况下只要你使用"TransactionScope",都要配置MSDTC,要配防火…
解决方案代码一:使用lock锁定 //对于锁推荐使用静态私有静态变量 private readonly static object _MyLock = new object(); /// <summary> /// 事务, 多表修改 /// </summary> /// <param name="name"></param> /// <returns></returns> public bool UpdateNam…