六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

使用ADO.NET設置SQL Server事務處理

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

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

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

    使用這樣的方法可能導致向兩個極端情況發展:要么在事務處理中的所有操作都得到執行,要么沒有任何操作得到執行。這樣的方法對于實時應用程序來說非常必要。

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

SQL事務處理
SQL允許開發人員使用兩個簡單的聲明來使用事務處理

Begin Transaction (啟動事務處理)

Commit Transaction (提交事務處理)

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

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

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

Connection:指示同事務處理相關聯的SqlConnection對象;

IsolationLevel:定義事務處理的IsolationLevel。

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

Chaos:從高度獨立的事務處理中出現的pending changes不能被覆蓋;

ReadCommitted:當數據需要被非惡意讀取時,采用共享鎖定(shared locks),但數據仍然可以在事務處理結束時被更新,這造成了非重復性的數據讀。╪onrepeatable reads)或phantom data的產生;

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

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

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

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

Commit:提交數據庫事務處理;

Rollback:從未決狀態(pending state)反轉(roll back)事務處理。事務處理一旦被提交后即不能執行此操作;

Save:在事務處理中創建savepoint可以對事務處理的一部分進行反轉,并且指定savepoint名稱。

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

    這一簡單的控制臺程序將通過以下步驟將兩行插入到Northwind數據庫的表格中:

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

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

    調用Transaction對象的Commit方法來結束事務處理,或者調用Rollback方法來取消事務處理。

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

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




主站蜘蛛池模板: 午夜草草 | 午夜影视免费完整高清在线观看网站 | 亚洲欧美中日韩 | 日韩一级欧美一级在线观看 | 在线免费看污视频 | 欧美一区二区三区美人 | 色妞bbbb女女女女 | 天啪 | 四虎永久在线日韩精品观看 | 日韩亚洲欧洲在线com91tv | 日日摸日日操 | 人人福利 | 日韩精品魔镜号系列在线观看 | 色偷偷亚洲男人天堂 | 亚洲第一区精品观看 | 一级黄色大片免费 | 武则天一级淫片免费 | 伊在线视频 | 日韩欧美亚洲 | 青娱乐免费在线观看 | 午夜剧场黄 | 亚洲精品在线观看视频 | 亚洲一区二区三区在线 | 倩女还魂在线观看完整版免费 | 手机看片福利日韩欧美看片 | 亚洲成人网在线播放 | 人人鲁免费播放视频人人香蕉 | 天干天干天啪啪夜爽爽色 | 日韩美女在线视频网站免费观看 | 亚洲综合影视 | 亚洲日本网站 | 欧美性大战久久久久久 | 最好韩国日本高清免费 | 天堂18| 亚洲影视天堂 | 婷婷色综合成人成人网小说 | 欧美一级高清在线观看 | 色综合天天综合网站中国 | 亚洲天堂免费视频 | 亚州精品永久观看视频 | 综合亚洲欧美 |