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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

使用System.Transactions

發布時間:2025/3/13 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用System.Transactions 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
? 在.net framework 中 System.Transactions 簡化了事務的處理,最近做數據集成的項目,多次使用了事務處理,使用了System.Transactions ,下面我將把他的使用方法總結一下,希望對別人有幫助。

???? 一。如何使用

??? System.Transactions 使用非常簡單,下面是使用的代碼

????????? DEMO 1

?

?

代碼 using?System;
using?System.Collections.Generic;
using?System.Text;
using?System.Transactions;
using?System.Data.SqlClient;

namespace?TestTransactions
{
????
class?Transactions
????{
????????
private?void?UseTransactions()
????????{
????????????
using?(TransactionScope?tran?=?new?TransactionScope())
????????????{
????????????????
using?(SqlConnection?conn?=?new?SqlConnection("server=.;database=Northwind;uid=sa;pwd=sa"))
????????????????{
????????????????????
string?strInert?=?"insert?into?table1(name,password)?values('ilahsa','123456')";
????????????????????
string?strUp?=?"update?table1?set?password='654321'?where?name?=?'ilahsa'";
????????????????????SqlCommand?cmd1?
=?new?SqlCommand(conn,?strInert);
????????????????????cmd1.ExecuteNonQuery();
????????????????????SqlCommand?cmd2?
=?new?SqlCommand(conn,?strUp);
????????????????????cmd2.ExecuteNonQuery();
????????????????}
????????????????tran.Complete();
????????????}?
????????}
????}
}

?

?

?

?首先聲明一個TransactionScope? 的實例,把需要事務處理的代碼放在Using的語句塊,這段代碼封裝了連個SQL 指令,只要其中有一個執行過程中發生異常,TransactionScope 對象會自動回滾事務,代碼正常執行的話, tran.Complete()語句提交了事務。DEMO1中使用了兩個Using 語句,代碼執行完畢會自動釋放資源(比較推薦這種方式),看到了嗎,使用 System.Data.SqlClient處理事務是如此的簡單,只需幾行代碼就搞定了

?

二.事務的設置

?

?TransactionScopeOptions?描述
?Required ?如果已經存在一個事務,那么這個事務范圍將加入已有的事務。否則,它將創建自己的事務。
?RequiresNew ?這個事務范圍將創建自己的事務。
Suppress?如果處于當前活動事務范圍內,那么這個事務范圍既不會加入氛圍事務 (ambient transaction),也不會創建自己的事務。當部分代碼需要留在事務外部時,可以使用該選項。
??

???????


--------------------------------------------------------------------------------


使用TransactionScopeOptions可以改變TransactionScope的默認事務類型 (默認的事務類型是Required)。

使用方法

DEMO2

?

?

代碼 using?(TransactionScope?ts?=?new?TransactionScope(TransactionScopeOption.RequiresNew))
????????????{
????????????????
using?(SqlConnection?conn1?=?new?SqlConnection(str))
????????????????{
????????????????????SqlCommand?cmd?
=?new?SqlCommand(conn1,?strsql1);
????????????????????cmd.ExecuteNonQuery();
????????????????}
????????????????
using?(SqlConnection?conn2?=?new?SqlConnection(conn2))
????????????????{
????????????????????SqlCommand?cmd?
=?new?SqlCommand(conn2,?strsql2);
????????????????????cmd.ExecuteNonQuery();
????????????????}
????????????????ts.Complete();
????????????}

?

?

?

?

三。 什么時候使用System.Transactions

??????? 第一中情況是,你的數據庫支持輕型事務,何為輕型事務MSDN上有很明確的介紹,在這里就不多說了,也就是你的數據庫是SQL SERVER 2005.

??????? 第二種情況是你的事務中使用了分布式的數據庫系統。即在一個事務處理中使用了多個數據庫。使用System.Transactions也會使性能有很大的提升。

?????? 如果數據庫是SQL SERVER? 2000,而又只連接一個數據庫的話,使用ado.net 的事務處理更有優勢。

?

轉載于:https://www.cnblogs.com/jhxk/articles/1666099.html

總結

以上是生活随笔為你收集整理的使用System.Transactions的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。