Dot-Net

在transactionscope中打開sql連接重要嗎

  • October 25, 2012

我創建了一個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?
 ...
}

必須TransactionScope 中打開連接以確保連接已註冊到事務中。

connection.Open這可以在MSDN 範例上方的評論中找到。

  1. 否,事務中未執行命令
  2. 在範圍內打開連接或使用 SqlConnection 實例的 EnlistTransaction 方法。在不同的執行緒中查看我的答案。

引用自:https://stackoverflow.com/questions/1976538