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

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

ADO.NET事務

2019-11-17 01:33:22
字體:
來源:轉載
供稿:網友

ADO.NET事務

在發布System.Transaction命名空間之前,可以直接用ADO.NET創建事務,也可以通過組件、特性和COM+運行庫(位于System.EnterPRiseServices命名空間中)進行事務處理。本文如題所示,介紹在這些傳統事務處理方式中較為簡單的“asp.net事務”。

在傳統的ADO.NET事務中,如果沒有手動創建事務,每條SQL語句就都是一個事務。如果多條SQL語句應參與到同一個事務處理中,就必須手動創建一個事務。

下面通過一個示例演示:

MySQL中建立如下表:

image

插入數據如下:

image

ADO.NET事務測試代碼:

using(MySqlConnection conn = new MySqlConnection(GetConnection()))
        {
            conn.Open();
            //啟動一個事務
            using(MySqlTransaction transaction = conn.BeginTransaction())
            {
                using (MySqlCommand cmd = conn.CreateCommand())
                {
                    try
                    {
                        cmd.Transaction = transaction;  //為命令指定事務
                        cmd.CommandText = "INSERT INTO tb_user(UserId,UserName) VALUE('Id0009','Name0002');";
                        cmd.ExecuteNonQuery();
                        cmd.CommandText = "INSERT INTO tb_user(UserId,UserName) VALUE('Id0008','Name0003');";
                        cmd.ExecuteNonQuery();
                        transaction.Commit();   //事務提交
                        Response.Write("<scr
                    }
                    catch(Exception ex)
                    {
                        transaction.Rollback(); //事務回滾
                        Response.Write(ex.Message);
                        Response.Write("<script>alert('寫入記錄失敗');</script>");
                    }
                }
            }
        }

代碼分析:

如示例代碼手動創建ADO.NET事務步驟如下:

1)使用MySqlConnection類的BeginTransaction()方法返回一個MySqlTransaction類型的對象;

2)使用MySqlCommand類對象的Transaction屬性將要參與事務處理的每條命令關聯到上一不返回的MySqlTransaction類型的對象上;

3)如果事務可以成功完成,使用MySqlTransaction對象的Commit()方法提交事務處理結果;

4)如果事務處理中發生錯誤,就調用MySqlTransaction對象的Rollback()方法,撤銷每一個修改。


ADO.NET事務的缺點;

ADO.NET事務只能處理關聯到一個連接上的本地事務,不支持跨多個連接的事務。(為了克服這一缺點,下一節將介紹基于System.Transaction命名空間的分布式事務)。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 巫溪县| 天水市| 锡林郭勒盟| 休宁县| 广饶县| 丹江口市| 英山县| 永川市| 米林县| 旬邑县| 会昌县| 曲沃县| 安多县| 吴川市| 汪清县| 荔浦县| 安塞县| 彭阳县| 达拉特旗| 涪陵区| 古蔺县| 庆城县| 博乐市| 科技| 紫云| 乌鲁木齐县| 永年县| 宾川县| 如东县| 西华县| 土默特右旗| 禹城市| 绥德县| 桦川县| 乐清市| 信宜市| 平定县| 乡城县| 肥城市| 鱼台县| 靖江市|