为什么客户发起的Ado.Net交易不允许......?

时间:2009-12-10 22:24:55

标签: sql tsql ado.net


如果我们使用客户端启动的Ado.Net事务,那么当我们在事务正在进行时尝试执行不属于当前事务的命令时,我们将收到错误。那是为什么?


感谢名单

1 个答案:

答案 0 :(得分:1)

您无法执行“不属于当前事务”的命令。启动SqlTransaction后,执行了BEGIN TRANSACITON语句,服务器已在事务中调用了会话。任何在同一会话上发表的新声明都将成为交易的一部分。 ADO.Net SqlClient通过要求您将正确的SqlTransaction分配给SqlCommand来强制执行此操作。

如果需要在当前事务之外执行语句,则需要获取与数据库的新连接并在其上执行语句。

顺便说一下,你说ADO.Net交易和我的工作,它.Net System.Transactions组件有一些不同的行为。