麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > .NET > 正文

ADO.NET筆記——執行事務

2024-07-21 02:47:34
字體:
來源:轉載
供稿:網友
ADO.NET筆記——執行事務

相關知識:

  1. 處于同一事務(Transaction)內的一組操作,要么都成功執行,最后完全提交;但如果只要有任何一個操作失敗或者出問題,所有值錢執行的操作也都取消并恢復到初始狀態(即回滾)
  2. SqlTransacttion代表從ADO.NET中發出的事務

代碼示例:

 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 using System.Data; 7 using System.Data.SqlClient; 8  9 namespace Consoleapplication1310 {11     class PRogram12     {13         static string strConn = @"server=Joe-PC;database=AccountDBforSQLInjection;uid=sa;pwd=root";14         static SqlConnection conn = new SqlConnection(strConn);15 16         static string sql1 = "INSERT INTO Account(AccountID,AccountName,passWord) VALUES"17             + "(100,'sql1','123456')";//此命令正確18         static string sql2 = "INSERT INTO Account(AccountID,AccountName1,password) VALUES"19             + "(100,'sql2','123456')";//此命令因有拼寫錯誤將會失敗20 21         static SqlCommand cmd1 = new SqlCommand(sql1, conn);22         static SqlCommand cmd2 = new SqlCommand(sql2, conn);23 24         static void Main(string[] args)25         {26             //OperationWithoutTransaction();27             OperationWithTransaction();28         }29 30         static void OperationWithoutTransaction()31         {32             conn.Open();33 34             try35             {36                 cmd1.ExecuteNonQuery();37                 cmd2.ExecuteNonQuery();38             }39             catch (Exception e)40             {41                 Console.WriteLine("執行失敗。");42                 Console.WriteLine(e);43             }44             finally45             {46                 conn.Close();47             }48         }49 50         static void OperationWithTransaction()51         {52             conn.Open();53             //連接打開后,才能啟動事務54             SqlTransaction trans = conn.BeginTransaction();55             //將兩個操作添加到同一個事務中56             cmd1.Transaction = trans;57             cmd2.Transaction = trans;58 59             try60             {61                 cmd1.ExecuteNonQuery();62                 cmd2.ExecuteNonQuery();63                 //如果沒有出現異常,則提交事務64                 trans.Commit();65             }66             catch (Exception e)67             {68                 Console.WriteLine("執行失敗,事務回滾。");69                 Console.WriteLine(e);70                 //執行回滾71                 trans.Rollback();72             }73             finally74             {75                 conn.Close();76             }77         }78     }79 }

程序分析:

  1. 沒有使用事務時,如果命令1執行正確,而命令2執行錯誤,則命令1的修改將成功保存到數據庫中
  2. 使用事務之后,只要有任何一個命令錯誤,則另個命令都不會對數據庫造成影響


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久亚洲精品久久国产一区二区 | 欧美性生视频 | 中国洗澡偷拍在线播放 | 成人一级视频在线观看 | 五月天影院,久久综合, | 亚洲第一成人久久网站 | 91福利社在线 | 中文区永久区 | 欧美18—19sex性护士中国 | 免费看一级片 | 国产美女视频一区 | 国产日韩a| 欧美人的天堂一区二区三区 | 中文字幕 欧美 日韩 | 国产黄色一区二区 | 黄色一级片免费在线观看 | 日韩精品网站在线观看 | 久久丝袜脚交足黄网站免费 | 精品亚洲一区二区三区 | 欧美大屁股精品毛片视频 | 男女羞羞在线观看 | 久久精品国产精品亚洲 | 在线日韩av电影 | 午夜视频在线免费观看 | 国产成人精品免费视频大全办公室 | 精品国产精品久久 | 精品成人av一区二区三区 | 羞羞视频在线免费 | 色屁屁xxxxⅹ免费视频 | 99爱视频| 一区二区三高清 | 最新黄色电影网站 | 国产一区二区三区精品在线观看 | 欧美大电影免费观看 | 国产欧美在线一区二区三区 | 爽毛片| 全黄毛片| av在线免费电影 | 欧美一级免费在线观看 | 精品一区二区久久久久久久网精 | 亚洲人成综合第一网 |