SqlConnection.Dispose()是否对所有挂起的事务执行回滚?

Jua*_* C. 5 .net sql-server ado.net

可能重复:
连接关闭时未提交的事务会发生什么?

我知道SqlTransaction会自行回滚Dispose()(如果出现错误,请参阅使用语句回滚数据库事务吗?),但是当它的父SqlConnection处理时它会被回滚吗?

Dav*_*rdi 5

是的,但我不认为它是由 SqlConnection 类处理的。

我认为SQL Server在连接关闭时会自动回滚所有未提交的事务。

还要考虑到SqlConnection默认有一个连接池。因此,当您关闭/处置 SqlConnection 时,“真实”数据库连接可能仍处于活动状态。

  • 事实上,tran 将保持打开状态,直到连接被重新使用! (4认同)