青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

twzheng's cppblog

『站在風(fēng)口浪尖緊握住鼠標旋轉(zhuǎn)!』 http://www.cnblogs.com/twzheng

  C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
  136 隨筆 :: 78 文章 :: 353 評論 :: 0 Trackbacks

使用ADO.NET配置SQL Server事務(wù)處理

摘自:賽迪網(wǎng)IT技術(shù)

        ADO.NET提供了處理后臺數(shù)據(jù)所需要的一切功能,并且使用起來就如同從一張表格中讀取一個數(shù)據(jù)那樣簡單。事務(wù)處理(transaction)允許你把數(shù)據(jù)庫操作歸為一組,由此來保證所有的操作都能夠執(zhí)行。因為一旦其中的一項操作執(zhí)行失敗,則整個事務(wù)處理都會失敗。現(xiàn)在讓我們來看看在.NET Framework下是如何使用事務(wù)處理的。

    事務(wù)處理概況
 
 
    事務(wù)處理是把一組操作合并為一個邏輯上的工作單元。在系統(tǒng)中沒有出現(xiàn)錯誤的情況下,開發(fā)人員可以使用事務(wù)處理來控制并保持事務(wù)處理中每一個動作的連續(xù)性和完整性。

    使用這樣的方法可能導(dǎo)致向兩個極端情況發(fā)展:要么在事務(wù)處理中的所有操作都得到執(zhí)行,要么沒有任何操作得到執(zhí)行。這樣的方法對于實時應(yīng)用程序來說非常必要。

    銀行業(yè)務(wù)是一個范例。事務(wù)處理應(yīng)當(dāng)包括從一個帳戶到另一帳戶的轉(zhuǎn)帳過程。這一過程屬于事務(wù)處理,原因是從某帳戶中支出和在另一帳戶存入兩個動作必須被作為一個整體來執(zhí)行——任何一方都不允許失敗。在深入研究ADO.NET編程之前,讓我們先來看看在SQL中是如何進行事務(wù)處理的。

SQL事務(wù)處理
SQL允許開發(fā)人員使用兩個簡單的聲明來使用事務(wù)處理

Begin Transaction (啟動事務(wù)處理)

Commit Transaction (提交事務(wù)處理)

    在兩條聲明中的所有語句都成為事務(wù)處理的一部分。命令Begin Transaction位于整個事務(wù)處理的起始位置,因此其后的所有命令只有在執(zhí)行到命令Commit Transaction時才會被一并執(zhí)行。ADO.NET方法就這么簡單。

ADO.NET事務(wù)處理
 
 
    事務(wù)處理需要一個數(shù)據(jù)庫連接以及一個事務(wù)處理對象。在SQL Server和ADO.NET中使用事務(wù)處理的難點在于SqlTransaction類。此類名稱隨所使用的數(shù)據(jù)庫平臺的不同而會有一些變化。例如,對于OLEDB數(shù)據(jù)庫來說,事務(wù)處理類名為OleDbTransaction。

System.Data.SqlClient namespace包括了SqlTransaction類。此類包括了兩個屬性:

Connection:指示同事務(wù)處理相關(guān)聯(lián)的SqlConnection對象;

IsolationLevel:定義事務(wù)處理的IsolationLevel。

屬性IsolationLevel是包括如下成員的枚舉對象:

Chaos:從高度獨立的事務(wù)處理中出現(xiàn)的pending changes不能被覆蓋;

ReadCommitted:當(dāng)數(shù)據(jù)需要被非惡意讀取時,采用共享鎖定(shared locks),但數(shù)據(jù)仍然可以在事務(wù)處理結(jié)束時被更新,這造成了非重復(fù)性的數(shù)據(jù)讀取(nonrepeatable reads)或phantom data的產(chǎn)生;

ReadUncommitted:惡意讀取數(shù)據(jù)是可能發(fā)生的,這表示沒有使用共享鎖定(shared locks),并且沒有實現(xiàn)獨占鎖定(exclusive locks);

RepeatableRead:鎖定查詢中所用到的所有數(shù)據(jù),由此避免其他用戶對數(shù)據(jù)進行更新。在phantom rows仍然可用的狀態(tài)下,這可以避免非重復(fù)性的數(shù)據(jù)讀取(nonrepeatable reads);

Serialisable:在DataSet中進行范圍鎖定,由此防止其他用戶在事務(wù)處理結(jié)束之前更新數(shù)據(jù)或在數(shù)據(jù)庫中插入行;

IsolationLevel定義鎖定記錄的級別,但這一概念不在本文論述范圍之內(nèi)。對象SqlTransaction也提供了類似的方法。你可以使用以下方法來進行事務(wù)處理:

Commit:提交數(shù)據(jù)庫事務(wù)處理;

Rollback:從未決狀態(tài)(pending state)反轉(zhuǎn)(roll back)事務(wù)處理。事務(wù)處理一旦被提交后即不能執(zhí)行此操作;

Save:在事務(wù)處理中創(chuàng)建savepoint可以對事務(wù)處理的一部分進行反轉(zhuǎn),并且指定savepoint名稱。

    以下的C#示例將這些部分綜合起來。

    這一簡單的控制臺程序?qū)⑼ㄟ^以下步驟將兩行插入到Northwind數(shù)據(jù)庫的表格中:

    調(diào)用Connection對象的BeginTransaction方法以標記事務(wù)處理的起始位置。BeginTransaction方法對事務(wù)處理返回了一個坐標(reference),此坐標被指定給事務(wù)處理所用到的Command對象。

    將Transaction對象指定給將要執(zhí)行的Command的Transaction屬性。如果某Command在活動Transaction中的Connection上被執(zhí)行,并且Transaction對象還沒有被指定到Command的Transaction屬性,則會產(chǎn)生一個異常。

    調(diào)用Transaction對象的Commit方法來結(jié)束事務(wù)處理,或者調(diào)用Rollback方法來取消事務(wù)處理。

    等價的VB.NET代碼與之類似。

    事務(wù)處理結(jié)束
    盡管這是一個簡單的示例,但它還是充分顯示了在.NET應(yīng)用程序中使用事務(wù)處理是多么的簡單。請記住,事務(wù)處理只有在處理一組命令時才是必要的。

posted on 2007-12-19 00:06 譚文政 閱讀(981) 評論(1)  編輯 收藏 引用 所屬分類: 數(shù)據(jù)庫

評論

# re: 使用ADO.NET配置SQL Server事務(wù)處理 2007-12-20 13:51 秦歌
頂  回復(fù)  更多評論
  

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美亚洲视频| 蜜桃av一区二区| 欧美有码在线视频| 欧美日韩美女一区二区| 亚洲一区二区精品在线| 亚洲一区二区三区三| 一区二区三区色| 亚洲人成7777| 亚洲电影免费观看高清完整版在线观看| 欧美日韩国内自拍| 欧美精品一区二区蜜臀亚洲 | 136国产福利精品导航网址| 在线日韩av片| 中文欧美字幕免费| 久久久久久久一区二区三区| 久久久久久久久久久久久9999| 亚洲国产成人av| 亚洲人成网站在线观看播放| 亚洲欧美日韩一区在线| 欧美成人久久| 国产日韩欧美麻豆| 亚洲激情欧美激情| 欧美一级淫片播放口| 国产一区二区成人| 在线播放不卡| 99re6这里只有精品| 欧美一级欧美一级在线播放| 亚洲国产导航| 欧美综合激情网| 免费观看成人网| 国产日韩欧美另类| 中文久久乱码一区二区| 欧美gay视频激情| 亚洲综合色在线| 欧美日韩视频一区二区三区| 亚洲第一福利视频| 亚洲在线视频网站| 亚洲第一主播视频| 亚洲欧洲精品天堂一级| 欧美一区三区三区高中清蜜桃 | 久久成人精品| 亚洲激情欧美激情| 久久se精品一区精品二区| 欧美日韩国产综合新一区| 亚洲国产精品久久| 久久中文在线| 性欧美办公室18xxxxhd| 国产精品福利影院| 一区二区三区免费在线观看| 美女999久久久精品视频| 欧美一级大片在线免费观看| 国产精品激情| 99国产精品视频免费观看一公开| 欧美成人精品一区| 久久亚洲欧美国产精品乐播| 樱桃成人精品视频在线播放| 蜜桃av综合| 久久亚洲综合色一区二区三区| 狠狠入ady亚洲精品| 久久精品国产99精品国产亚洲性色| 99re6热在线精品视频播放速度| 欧美精品免费看| 一区二区日韩伦理片| 亚洲精品视频在线看| 欧美三级小说| 午夜精品福利一区二区三区av| 一区二区三区成人精品| 欧美系列精品| 欧美在线啊v一区| 欧美一级久久久久久久大片| 国产一区二区久久久| 玖玖综合伊人| 免费日韩一区二区| 激情欧美一区二区| 久久亚洲一区二区三区四区| 久久频这里精品99香蕉| 亚洲国产欧美一区| 日韩视频免费观看高清完整版| 国产精品成人v| 欧美在线播放高清精品| 欧美在线观看你懂的| 欧美视频在线视频| 欧美在线视频a| 蜜臀a∨国产成人精品 | 精品99视频| 欧美国产日韩在线| 欧美日韩美女在线观看| 欧美一区深夜视频| 久久一区中文字幕| 一区二区国产在线观看| 午夜精品一区二区三区在线视 | 欧美色区777第一页| 亚洲免费在线看| 久久www成人_看片免费不卡 | 久久三级视频| 欧美另类女人| 久久精品视频导航| 欧美14一18处毛片| 久久www成人_看片免费不卡| 欧美jizzhd精品欧美巨大免费| 中文国产一区| 久久综合影音| 欧美影院久久久| 欧美成人免费在线视频| 欧美一区二区三区视频免费| 欧美激情第10页| 欧美一区免费| 久久久综合网站| 亚洲女人小视频在线观看| 久久久欧美精品sm网站| 午夜精品免费在线| 欧美激情中文不卡| 老司机精品视频网站| 国产精品国产三级国产专播品爱网 | 亚洲欧美日本国产有色| 亚洲伦理在线观看| 久久精品导航| 午夜精品久久久久久久久久久久| 免费在线欧美视频| 美女网站久久| 国产日韩欧美麻豆| 亚洲性图久久| 亚洲一区在线视频| 欧美巨乳在线| 亚洲电影免费观看高清完整版| 国产日韩欧美在线视频观看| 亚洲一区二区在线免费观看| 亚洲小说区图片区| 欧美高清不卡| 亚洲国产精品女人久久久| 在线免费日韩片| 久热re这里精品视频在线6| 久久永久免费| 在线观看成人av| 另类尿喷潮videofree | 亚洲一区二区在线免费观看| 欧美国产欧美亚洲国产日韩mv天天看完整 | 欧美岛国激情| 欧美黄色片免费观看| 久久综合99re88久久爱| 国产精品99久久久久久白浆小说| 一本一道久久综合狠狠老精东影业 | 一本色道久久加勒比88综合| 欧美精品久久久久久久| 亚洲国产一区二区三区a毛片| 亚洲黄色在线| 欧美国产丝袜视频| 亚洲乱码国产乱码精品精| av成人手机在线| 国产精品久久久久久影视| 亚洲欧美日韩精品| 久久久久久一区| 激情视频一区| 欧美黄色小视频| 一本一本久久| 先锋影音国产精品| 黄色成人91| 美女视频一区免费观看| 亚洲免费精品| 欧美一区二区视频97| 激情久久久久久久| 久久亚洲春色中文字幕久久久| 亚洲国产日韩欧美在线图片| 亚洲综合成人婷婷小说| 狠狠色丁香婷婷综合| 欧美肥婆bbw| 亚洲图色在线| 蜜桃久久精品一区二区| 一区二区日韩免费看| 国产一区二区三区视频在线观看| 久久综合伊人77777蜜臀| 一区二区精品在线观看| 久久综合色8888| 一区二区三区高清不卡| 欧美日韩在线视频观看| 久久成人资源| 中日韩在线视频| 欧美成人精品1314www| 亚洲欧美亚洲| 亚洲精品视频免费在线观看| 亚洲高清在线精品| 久久精彩视频| 中文日韩电影网站| 欧美成人一区二区在线| 欧美一区二区三区成人 | 午夜精品www| 亚洲肉体裸体xxxx137| 国产麻豆综合| 欧美日韩一区二区三区视频 | 精品av久久久久电影| 国产精品毛片va一区二区三区 | 亚洲三级观看| 久久婷婷综合激情| 午夜宅男久久久| 亚洲色图自拍| 一本色道久久综合精品竹菊| 亚洲大胆美女视频| 国产一区二区三区四区hd| 亚洲愉拍自拍另类高清精品| 亚洲国产欧美在线|