国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

ASP.NET開發過程中的事務處理

2019-11-17 03:07:17
字體:
來源:轉載
供稿:網友

asp.net開發過程中的事務處理

今天重新看了一遍《asp.net高級程序設計第四版》的第七章,關于asp.net的事務處理這一塊,之前看的時候由于工作中也沒有用到它所以沒怎么在意,不過真是應了那句話:溫故而知新呀。

今天的內容不是很多,代碼演示也不多,所以可以早早寫完休息。

事務:事務可以理解為一種必須同時完成或全部失敗的操作。書中的經典例子:賬戶轉賬,A賬戶與B賬戶之前必須A-100同時B+100,這個操作必須同時成功,只要有個失敗兩個步驟都需要回滾,這樣的一個完整過程就可以稱為一個【事務】。


整個小節講解事務處理可以歸納為以下幾點:

  • 存儲過程實現事務:這是實現事務的一種比較好的方式。

語法:BEGIN TRANSACTION

成功:COMMIT

失敗:ROLLBACK

下面是一個比較簡單的是個例子主要是為了演示一下用法:

CREATE PROCEDURE myTransaction(@amount MONEY,---轉賬金額@countA INT,--賬戶A@countB INT--賬戶B)AS BEGIN TRANSACTION  ---這里是你自定義的SQL更新語句A   /*                  */  --@@ERROR始終是一個記錄當前執行SQL錯誤信息的變量,每一個更新之后會重新自動置0  IF(@@ERROR>0)    ROLLBACK  ---這里是你自定義的SQL更新語句B  /*                  */  IF(@@ERROR>0)    ROLLBACK  ---全部更新已經執行完成   COMMIT   --更新事務狀態  RETURN    
  • ADO.NET實現事務

語法:通過調用connection對象的 BeginTransaction()方法開始,該方法返回一個Transaction對象,用于管理事務。由于ADO.NET針對不同的數據庫提供程序提供不同的ADO.NET對象,對應的事務對象類名也不一樣如:SqlTransaction OledbTransaction OracleTransaction,這里就以SQL Server數據提供程序為例,提供一個標準例子,主要是演示用法:

成功:con.Commit();

失?。篶on.Rollback();

   SqlConnection con=new SqlConnection(strConnect);            SqlCommand cmd1 = new SqlCommand(strSQL1,con);            SqlCommand cmd2 = new SqlCommand(strSQL2, con);             SqlTransaction tran=null;            try            {                con.Open();                 tran = con.BeginTransaction();  //創建事務                                //將Cmd對象提交到事務中                cmd1.Transaction = tran;                cmd2.Transaction = tran;                //執行更新                cmd1.ExecuteNonQuery();                cmd2.ExecuteNonQuery();                //全部更新成功,刷新事務狀態                tran.Commit();            }            catch            {                //更新失敗事務回滾                tran.Rollback();            }            finally {                con.Close();            }

  • COM+實現事務:不過書中沒有細節去討論這一塊。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 保康县| 德令哈市| 开远市| 淄博市| 新宁县| 科技| 三亚市| 广饶县| 巴林右旗| 全州县| 同心县| 沧州市| 宝鸡市| 靖远县| 宿松县| 阿克陶县| 楚雄市| 韶关市| 东丰县| 巴林右旗| 九寨沟县| 桐柏县| 临西县| 白河县| 团风县| 固安县| 庆城县| 隆化县| 肃宁县| 建水县| 宜都市| 丽水市| 齐河县| 鲁山县| 万年县| 抚远县| 万宁市| 旺苍县| 临泉县| 柳江县| 吴堡县|