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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

戏耍Transaction,多个连接的Transaction处理(非COM+)

發(fā)布時間:2025/3/15 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 戏耍Transaction,多个连接的Transaction处理(非COM+) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

處理事務(wù)的方法很多,其中最常用的是.NET和sql server的事務(wù)處理,^_^,COM+俺不懂,聽說用于事務(wù)處理很強,可惜了
(有機會?定要研究研究)。

下面的說明是SQL server:
通常的Tranaction的使用是基于一個sqlconnection的,使用BeginTransaction來開始和用Commit提交,rollback來回滾。我要說的多個連接的實質(zhì)還是這樣,只是自己使用了一個小伎倆,利用.net的捕捉異常的機制,不再一一提交,而是統(tǒng)一提交和回滾。

下面是處理多個Transaction的一個類。ProcessTransaction.vb
處理多個連接時只要把相應(yīng)的ConnectionString和相應(yīng)的Sql語句傳入就搞定了。注意的時,ConnectionString存放在一個collection(cCN)中,Sql語句放在一個類型時string的數(shù)組中commandText(),注意把在一個Transaction的sql語句統(tǒng)一放在里面啊!

Code:

Imports?System.Data
Imports?System.Data.SqlClient

Public?Class?ProcessTransactionClass?ProcessTransaction


????
Private?c?As?New?Collection

????
Public?Sub?ptExecuteNonQuery()Sub?ptExecuteNonQuery(ByVal?commandText()?As?String,?ByVal?cCN?As?Collection)

????????
Dim?s?As?String

????????
Dim?flag?As?Boolean
????????
For?Each?s?In?cCN
????????????
If?Not?ptExecuteNonQuery_test(commandText,?s)?Then
????????????????flag?
=?False
????????????????
Exit?For
????????????
Else
????????????????flag?
=?True
????????????
End?If
????????
Next

????????
Dim?sqlTa?As?SqlTransaction
????????
If?flag?Then
????????????
For?Each?sqlTa?In?c
????????????????sqlTa.Commit()
????????????
Next
????????
Else
????????????
For?Each?sqlTa?In?c
????????????????sqlTa.Rollback()
????????????
Next
????????
End?If

????
End?Sub



????
Private?Function?ptExecuteNonQuery_test()Function?ptExecuteNonQuery_test(ByVal?commandText()?As?String,?ByVal?cn?As?String)?As?Boolean

????????
Dim?sqlcn?As?New?SqlConnection(cn)
????????
Dim?sqlCmd?As?New?SqlCommand
????????
Try
????????????sqlcn.Open()
????????????
Dim?sqlTa?As?SqlTransaction?=?sqlcn.BeginTransaction()
????????????c.Add(sqlTa)

????????????sqlCmd.CommandType?
=?CommandType.Text
????????????sqlCmd.Connection?
=?sqlcn
????????????sqlCmd.Transaction?
=?sqlTa
????????????
Dim?CommStr?As?String
????????????
For?Each?CommStr?In?commandText
????????????????sqlCmd.CommandText?
=?CommStr
????????????????sqlCmd.ExecuteNonQuery()
????????????
Next
????????????
Return?True
????????
Catch?ex?As?Exception
????????????
Return?False
????????
Finally
????????????sqlCmd.Dispose()
????????????sqlcn.Close()
????????????sqlcn.Dispose()
????????
End?Try

????
End?Function

End?Class

轉(zhuǎn)載于:https://www.cnblogs.com/rippleyong/archive/2004/08/18/34499.html

總結(jié)

以上是生活随笔為你收集整理的戏耍Transaction,多个连接的Transaction处理(非COM+)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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