C# SqlConnection和嵌套事务
(仍然)无法通过ADO.NET/SQL Server 2012创建嵌套事务,对吗?这个C# SqlConnection和嵌套事务,c#,sql-server,ado.net,sql-server-2012,.net-4.5,C#,Sql Server,Ado.net,Sql Server 2012,.net 4.5,(仍然)无法通过ADO.NET/SQL Server 2012创建嵌套事务,对吗?这个 using (var sqlConnection = new SqlConnection(connStr)) { sqlConnection.Open(); var tranOuter = sqlConnection.BeginTransaction("outer"); DoStuff(); var tranInner = sqlConnection.BeginTra
using (var sqlConnection = new SqlConnection(connStr))
{
sqlConnection.Open();
var tranOuter = sqlConnection.BeginTransaction("outer");
DoStuff();
var tranInner = sqlConnection.BeginTransaction("inner");
DoMoreStuff();
tranInner.Commit();
tranOuter.Commit();
}
。。。抛出SqlConnection不支持并行事务。所以我可能不得不重新编写代码,以便在任何地方使用,或者我遗漏了什么
编辑:命名事务没有帮助
编辑:看起来这是一个如果您使用一个
重载
来命名您的事务
可能会有所帮助。我以前做过这件事,并且在执行嵌套事务时没有任何问题。也不要假设提交
会成功尝试包装传输内部和将外部
转换为各自独立的语句,尝试{}catch{}
语句,并执行回滚
如果提交失败,命名无法解决问题。异常由sqlConnection.BeginTransaction(“内部”)引发;我在代码中看不到您正在创建SQLTransaction
对象的地方。@DJKRAZE sqlConnection.BeginTransaction创建它。为什么不尝试另一种方法,但显式创建SQLTransaction对象并以这种方式正确分配事务。。正如我所说的,我知道这种方法是有效的