首页 > 编程知识 正文

sql语句中开启事务,提交事务的sql语句commit

时间:2023-05-05 04:22:39 阅读:215500 作者:3278

TransactionScope是.Net Framework 2.0滞后,新增了一个名称空间。它的用途是为数据库访问提供了一个“轻量级”[区别于:SqlTransaction]的事务。使用之前必须添加对 System.Transactions.dll 的引用。

下列代码就是一个正在创建的事务,这个事务自身还封装了多个数据库查询。只要任意一个 SqlCommand 对象引发异常,程序流控制就会跳出 TransactionScope 的 using 语句块,随后,TransactionScope 将自行释放并回滚该事务。由于这段代码使用了 using 语句,所以 SqlConnection 对象和 TransactionScope 对象都将被自动调用Dispose()释放。由此可见,只需添加很少的几行代码,您就可以构建出一个事务模型,这个模型可以对异常进行处理,执行结束后会 自行清理,此外,它还可以对命令的提交或回滚进行管理。

https://www.xuebuyuan.com/626758.html
https://blog.csdn.net/tonysong111/article/details/45510933

TransactionScope Timeout问题
C#代码中直接使用 而不显示声明超时时间(默认是60s) 则当Scope中的操作时间查过则会提示timeout 造成事务回滚
using (TransactionScope ts = new TransactionScope())
{

ts.Complete();
}
可根据情况做如下更改:显示hxdxmftimeout时间,三个参数分别为 时 分 秒
using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required,new TimeSpan(0,5,0))) {

ts.Complete();
}

2.TransactionScope 处理并问题
如果使用TransactionScope出现了频繁并发问题 则建议将事务写在SQL语句中。
https://www.xuebuyuan.com/626758.html

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。