日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > asp.net >内容正文

asp.net

ADO.NET 事务控制

發(fā)布時(shí)間:2023/12/1 asp.net 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ADO.NET 事务控制 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
  • 在ADO.NET?中,可以使用Connection?和Transaction?對(duì)象來(lái)控制事務(wù)。若要執(zhí)行事務(wù),請(qǐng)執(zhí)行下列操作:???
  • ??
  • 1.調(diào)用Connection?對(duì)象的BeginTransaction?方法來(lái)標(biāo)記事務(wù)的開(kāi)始。???
  • ??
  • 2.將Transaction?對(duì)象分配給要執(zhí)行的Command的Transaction?屬性。???
  • ??
  • 3.執(zhí)行所需的命令。???
  • ??
  • 4.調(diào)用Transaction?對(duì)象的Commit?方法來(lái)完成事務(wù),或調(diào)用Rollback?方法來(lái)取消事務(wù)。?當(dāng)然ADO.NET事務(wù)處理有優(yōu)點(diǎn)和缺點(diǎn),運(yùn)用起來(lái)看具體情況了。???
  • ??
  • 優(yōu)點(diǎn):?–?簡(jiǎn)單性?–?和數(shù)據(jù)據(jù)事務(wù)差不多的快?–?獨(dú)立于數(shù)據(jù)庫(kù),不同數(shù)據(jù)庫(kù)的專(zhuān)有代碼被隱藏了???
  • ??
  • 缺點(diǎn):?–?事務(wù)不能跨越多個(gè)數(shù)據(jù)庫(kù)連接?–?事務(wù)執(zhí)行在數(shù)據(jù)庫(kù)連接層上,所以需要在事務(wù)過(guò)程中維護(hù)一個(gè)數(shù)據(jù)庫(kù)連接。???
  • ??
  • 下邊我們看一個(gè)例子,建立一個(gè)頁(yè)面,同樣簡(jiǎn)單,只需要一個(gè)按鈕,然后編程:???
  • ??
  • 1?using?System;???
  • ??
  • 2?using?System.Data;???
  • ??
  • 3?using?System.Configuration;???
  • ??
  • 4?using?System.Collections;???
  • ??
  • 5?using?System.Web;???
  • ??
  • 6?using?System.Web.Security;???
  • ??
  • 7?using?System.Web.UI;??
  • ??
  • ?8?using?System.Web.UI.WebControls;???
  • ??
  • 9?using?System.Web.UI.WebControls.WebParts;???
  • ??
  • 10?using?System.Web.UI.HtmlControls;???
  • ??
  • 11?using?System.Data.SqlClient;???
  • ??
  • 12??
  • ??
  • ?13?namespace?WebApplication1???
  • ??
  • 14?{???
  • ??
  • 15?public?partial?class?AdoAction?:?System.Web.UI.Page???
  • ??
  • 16?{???
  • ??
  • 17?protected?void?Page_Load(?object?sender,?EventArgs?e)???
  • ??
  • 18?{???
  • ??
  • 19???
  • ??
  • 20?}???
  • ??
  • 21???
  • ??
  • 22?protected?void?btn_Click(?object?sender,?EventArgs?e)???
  • ??
  • 23?{???
  • ??
  • 24?SqlConnection?con?=?new?SqlConnection();???
  • ??
  • 25?con.ConnectionString?=?ConfigurationManager.ConnectionStrings[?"?DSN?"?].ConnectionString;???
  • ??
  • 26?con.Open();???
  • ??
  • 27?//?啟動(dòng)一個(gè)事務(wù)。???
  • ??
  • 28?SqlTransaction?myTran?=?con.BeginTransaction();???
  • ??
  • 29?//?為事務(wù)創(chuàng)建一個(gè)命令,注意我們執(zhí)行雙條命令,第一次執(zhí)行當(dāng)然成功。我們?cè)賵?zhí)行一次,失敗。???
  • ??
  • 30?//?第三次我們改其中一個(gè)命令,另一個(gè)不改,這時(shí)候事務(wù)會(huì)報(bào)錯(cuò),這就是事務(wù)機(jī)制。???
  • ??
  • 31?SqlCommand?myCom?=?new?SqlCommand();???
  • ??
  • 32?myCom.Connection?=?con;???
  • ??
  • 33?myCom.Transaction?=?myTran;???
  • ??
  • 34?try???
  • ??
  • 35?{???
  • ??
  • 36?myCom.CommandText?=?"?insert?into?SqlAction?values?('測(cè)試2','111')?"?;???
  • ??
  • 37?myCom.ExecuteNonQuery();???
  • ??
  • 38?myCom.CommandText?=?"?insert?into?SqlAction?values?('測(cè)試3','111')?"?;???
  • ??
  • 39?myCom.ExecuteNonQuery();???
  • ??
  • 40?myTran.Commit();???
  • ??
  • 41?Response.Write(?"?成功執(zhí)行?"?);???
  • ??
  • 42???
  • ??
  • 43?}???
  • ??
  • 44?catch?(Exception?Ex)???
  • ??
  • 45?{???
  • ??
  • 46?myTran.Rollback();??
  • ??
  • 47?//?創(chuàng)建并且返回異常的錯(cuò)誤信息???
  • ??
  • 48?Response.Write(Ex.ToString());???
  • ??
  • 49?Response.Write(?"?寫(xiě)入數(shù)據(jù)庫(kù)失敗?"?);???
  • ??
  • 50?}??
  • ??
  • 51?finally??
  • ??
  • 52?{???
  • ??
  • 53?con.Close();??
  • ??
  • 54?}? ?
  • 轉(zhuǎn)載于:https://www.cnblogs.com/qi123/p/9217325.html

    創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

    總結(jié)

    以上是生活随笔為你收集整理的ADO.NET 事务控制的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。