记录TransactionScope简单用法,示例以下: html
1 void Test() 2 { 3 using (TransactionScope scope = new TransactionScope()) 4 { 5 try 6 { 7 方法一(); 8 方法二(); 9 10 // 完成 11 scope.Complete(); 12 } 13 catch (Exception e) 14 { 15 记录日志(e); 16 } 17 finally 18 { 19 // 提交,释放资源 20 scope.Dispose(); 21 } 22 } 23 }
问题1.此次使用的Access数据库,报错“提供程序不支持 ITransactionLocal 接口”。数据库
解决方法:在链接字符串里,加上"OLE DB Services=-4",做用是禁用 OLE DB 会话池和自动事务登记。反作用是在频繁使用相同链接字符串打开和关闭链接,性能将受影响。性能
问题2.提交和回滚的原理见老A博文:http://www.cnblogs.com/artech/archive/2010/01/31/1660356.htmlspa