【发布时间】:2009-12-11 06:33:13
【问题描述】:
如果我们使用客户端启动的 Ado.Net 事务,那么当我们在事务进行时尝试执行不属于当前事务的命令时,我们会收到错误消息。这是为什么呢?
感谢
【问题讨论】:
如果我们使用客户端启动的 Ado.Net 事务,那么当我们在事务进行时尝试执行不属于当前事务的命令时,我们会收到错误消息。这是为什么呢?
感谢
【问题讨论】:
您不能执行“不属于当前事务”的命令。一旦 SqlTransaction 启动,BEGIN TRANSACITON 语句就会被执行,并且服务器已将您的会话注册到事务中。在同一会话中出现的任何新语句都将成为事务的一部分。 ADO.Net SqlClient 通过要求您将正确的 SqlTransaction 分配给 SqlCommand 来强制执行此操作。
如果你需要在当前事务之外执行语句,你需要获得一个到数据库的新连接并在上面执行你的语句。
顺便说一句,你说的是 ADO.Net 事务,我接受了你的工作,.Net System.Transactions 组件有一些不同的行为。
【讨论】: