台灣最大程式設計社群網站
線上人數
755
 
會員總數:244227
討論主題:188566
歡迎您免費加入會員
討論區列表 >> ASP.NET >> C#中呼叫多個MSSQL預存程序,rollback的問題
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
C#中呼叫多個MSSQL預存程序,rollback的問題
價值 : 50 QP  點閱數:314 回應數:3

樓主

芋頭
初學者
247 452
3014 444
發送站內信

請問各位大大
我有一個C# 網頁程式,裡面要去呼叫4個獨立的MSSQL預存程序,我希望任一個錯誤就rollback
在網路上有找到範例架購如下
using (var conn = new SqlConnection(...))

trans = conn.BeginTransaction();

try
{
...call P1 using transaction
...call P2 using transaction
...call P3 using transaction
...call P4 using transaction

trans.Commit();
}
catch
{
trans.RollBack();
throw;
}
}
P1~P4目前我是獨立成4個function去呼叫,且四個function裡面也都有using (var conn = new SqlConnection(...)) ,
這樣能夠都rollback嗎?因為我覺得p1~p4裡面的connection好像是獨立的
謝謝指導~~~

搜尋相關Tags的文章: [ rollback ] ,
本篇文章發表於2019-01-18 17:28
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

阿恢
捐贈 VP 給 阿恢 檢舉此回應
有無考慮直接寫一支預存程序,裡面分別EXEC這四支預存程序?
本篇文章回覆於2019-01-28 11:35
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

芋頭
檢舉此回應
有的,目前我就是把程式調整成這樣,
也就是把transaction作在SQL Server端,而非前端程式,但前端程式還是比較好偵錯跟記錄
所以才有此一問
謝謝~~
本篇文章回覆於2019-01-28 12:00
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

topcat
捐贈 VP 給 topcat 檢舉此回應
其實您做個實驗就可以自己測試看看了
您可以P1,P2,P3都讓他正常成功
P4的時候故意讓他失敗
然後去查看P1,P2,P3分別維護的資料是否還存在

^.^a
本篇文章回覆於2019-01-28 18:08
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.