7

我创建了一个sqlconnection,CN1。然后这个CN1被打开。稍后在代码中有一个事务范围。如果我在这个 CN1 连接上执行一个 sql 命令,这是在事务中吗?

代码如下所示;

SqlConnection cn1 = new SqlConnection();
cn1.Open(); //connection opened when there is no ambient transaction.
...

using(TransactionScope scope = new TransactionScope())
{
  SqlCommand cmd; //a typical sql command.

  ...

  cmd.ExecuteNonQuery(); //Is this command within transaction?
  ...
}
4

2 回答 2

9

必须TransactionScope 中打开连接以确保连接已注册到事务中。

connection.Open这可以在MSDN 示例上方的评论中找到。

于 2009-12-29T19:51:47.113 回答
5
  1. 否,事务中未执行命令
  2. 在范围内打开连接或使用 SqlConnection 实例的 EnlistTransaction 方法。在不同的线程中查看我的答案。
于 2010-08-24T11:11:29.170 回答