2009-04-22 46 views
7

這與Nested Database transactions in C#有關。我可以混合使用SqlConnection.BeginTransaction和TransactionScope嗎?

集合中的對象我想在事務中使用SqlConnection.BeginTransaction方法實現自己的事務。

看完這個post我不知道我是否可以混合這些。 我正在使用SQL Server 2005,每個對象都使用來自靜態配置類的連接詳細信息。

有沒有人有這方面的經驗?

下面是示例代碼:

using(TransactionScope scope = new TransactionScope()) 
{ 
    for (int i=0; i<=1000....) 
    { 
    SqlConnection con = new SqlConnection() 
    SqlCommand cmd = new SqlCommand("delete from ...", con); 

    try { 
     con.Open(); 
     DbTransaction t = con.BeginTransaction(); 
     cmd.ExecuteNonQuery(); 
     ... 
     cmd.CommandText = .... ; 
     cmd.ExecuteNonQuery(); 
     t.Commit ... 
    } 
    catch { 
     t.Rollback ... 
    } 
    con.Close() 
    } 
} 

THX

回答

5

花費數小時來配置MSDTC,以在兩臺機器上工作後,我終於在那裏我可以測試代碼的點。

看來(1個數據庫)

上述問題可能是有用的,以沒有訪問源代碼,因此無法擺脫「傳統」交易系統,或者交易的人一起工作部分代碼沒有本地化,或者像我的情況一樣,您不想過多地使用在生產環境中證明穩定的複雜代碼,但您需要引入嵌套事務...

讓我知道你是否有不同的經歷。

+0

你應該將你的答案標記爲這個問題的答案 - 這是允許的! – Fenton 2009-11-25 15:56:57

相關問題