Dot-Net
在transactionscope中打開sql連接重要嗎
我創建了一個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 範例上方的評論中找到。
- 否,事務中未執行命令
- 在範圍內打開連接或使用 SqlConnection 實例的 EnlistTransaction 方法。在不同的執行緒中查看我的答案。