多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國(guó)內(nèi)最全I(xiàn)T社區(qū)平臺(tái) 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁(yè) > 數(shù)據(jù)庫(kù) > Sqlserver > 事務(wù)的作用和在ADO.NET中的應(yīng)用

事務(wù)的作用和在ADO.NET中的應(yīng)用

來(lái)源:程序員人生   發(fā)布時(shí)間:2013-11-08 11:24:42 閱讀次數(shù):2812次
作用:
事務(wù)是一組組合成邏輯工作單元的數(shù)據(jù)庫(kù)操作,雖然系統(tǒng)中可能會(huì)出錯(cuò),但事務(wù)將控制和維護(hù)每個(gè)數(shù)據(jù)庫(kù)的一致性和完整性。如果在事務(wù)過(guò)程中沒(méi)有遇到錯(cuò)誤,事務(wù)中的所有修改都將永久成為數(shù)據(jù)庫(kù)的一部分。如果遇到錯(cuò)誤,則不會(huì)對(duì)數(shù)據(jù)庫(kù)作出任何修改。

系統(tǒng)中的應(yīng)用:
在一個(gè)銀行應(yīng)用程序中,如果資金從一個(gè)帳戶轉(zhuǎn)到另一個(gè)帳戶,則會(huì)將一定的金額記入一個(gè)帳戶的貸方,同時(shí)將相同的金額記入另一個(gè)帳戶的借方。由于計(jì)算機(jī)可能會(huì)因?yàn)橥k姟⒕W(wǎng)絡(luò)中斷等原因而出現(xiàn)故障,所以有可能更新了一個(gè)表中的行,但沒(méi)有更新相關(guān)表中的行。如果數(shù)據(jù)庫(kù)支持事務(wù),則可以將數(shù)據(jù)庫(kù)操作組成一個(gè)事務(wù),以防止因這些事件而使數(shù)據(jù)庫(kù)出現(xiàn)不一致。

在ADO.NET中的應(yīng)用:
在ADO.NET中??梢允褂?Connection 和 Transaction 對(duì)象來(lái)控制事務(wù)。若要執(zhí)行事務(wù),請(qǐng)執(zhí)行下列操作:
第一步:調(diào)用 Connection 對(duì)象的 BeginTransaction 方法來(lái)標(biāo)記事務(wù)的開(kāi)始。BeginTransaction 返回對(duì) Transaction 的引用。請(qǐng)保留此引用,以便將其分配給在事務(wù)中登記的 Command。
第二步:將 Transaction 對(duì)象分配給要執(zhí)行的 Command 的 Transaction 屬性。如果通過(guò)活動(dòng)的 Transaction 對(duì)象對(duì) Connection 執(zhí)行 Command,但該 Transaction 對(duì)象尚未分配給 Command 的 Transaction 屬性,則將引發(fā)異常。
 第三步:執(zhí)行所需的命令。
調(diào)用 Transaction 對(duì)象的 Commit 方法來(lái)完成事務(wù),或調(diào)用 Rollback 方法來(lái)取消事務(wù)。

  以下代碼示例使用 Microsoft? SQL Server? 上的 ADO.NET 來(lái)演示事務(wù)邏輯。
// 聲明數(shù)據(jù)庫(kù)連接和打開(kāi)數(shù)據(jù)庫(kù)
SqlConnection myConnection = new SqlConnection("Data Source=localhost;Initial Catalog=Northwind;Integrated Security=SSPI;");
myConnection.Open();
// 啟動(dòng)一個(gè)事務(wù)
SqlTransaction myTrans = myConnection.BeginTransaction();
// 為事務(wù)創(chuàng)建一個(gè)命令
SqlCommand myCommand = new SqlCommand();
myCommand.Connection=myConnection;
myCommand.Transaction = myTrans;
try
{
myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (100, "Description")";
myCommand.ExecuteNonQuery();
myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (101, "Description")";
myCommand.ExecuteNonQuery();
//提交事務(wù)
myTrans.Commit();
Console.WriteLine("Both records are written to database.");
}
catch(Exception e)
{
//如果遇到錯(cuò)誤則回滾
myTrans.Rollback();
Console.WriteLine(e.ToString());
Console.WriteLine("Neither record was written to database.");
}
finally
{
//關(guān)閉數(shù)據(jù)庫(kù)連接
myConnection.Close();
}

事務(wù):是保證一組操作的完整性(要么整體成功,要么整體失敗)
SqlConnection :數(shù)據(jù)庫(kù)連接對(duì)象
SqlCommand :數(shù)據(jù)庫(kù)命令對(duì)象,用以執(zhí)行各種數(shù)據(jù)庫(kù)操作
生活不易,碼農(nóng)辛苦
如果您覺(jué)得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 亚洲国产成人久久三区 | 国产精品视频一区二区三区不卡 | 国产精品所毛片视频 | 午夜精品同性女女 | 欧美性色欧美a在线播放 | 亚洲免费成人在线 | 羞羞视频免费网站日本 | 国产一级淫片a视频免费观看 | 国产一区二区三区在线免费 | 波多野结衣亚洲一区二区三区 | 欧美日韩你懂的 | 欧美激情久久久久久久久 | 12306播播影视播播影院午夜 | 综合图区亚洲欧美另类小说 | 国产人成午夜免费看 | 性欧美欧美另类巨大 | 日本欧美一级 | 亚洲成人高清在线 | 欧美一线天 | 欧美男同志高清videosbest | h小视频在线观看 | 国产一区福利 | 手机看片日韩在线 | 狂野欧美性猛交xxxx免费 | 日韩国产欧美在线观看一区二区 | 亚洲伊人久久在 | 免费观看福利视频 | 最新99国产成人精品视频免费 | 精品久久久久久中文字幕欧美 | 国产尤物在线视频 | 亚洲最新网站 | 久99久爱精品免费观看视频 | 国产精品毛片在线大全 | 日本护士做xxxxxx视频 | 在线观看麻豆国产精品 | 看黄色网址 | 亚洲人成综合在线播放 | 奇奇影院理论片在线观看 | 亚洲成人在线免费视频 | 麻豆毛片 | 日韩a视频 |