管理工具-->服" />

日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

在不同的用戶或數(shù)據(jù)庫中使用事務(wù)

系統(tǒng) 2711 0

C#中跨數(shù)據(jù)庫增刪改的事務(wù)控制

在程序的開發(fā)過程中,對數(shù)據(jù)庫的增刪改通常要用到事務(wù),用來實(shí)現(xiàn)的全部更新和全部回滾。單數(shù)據(jù)庫還比較好做,如果遇到同時(shí)操作多個(gè)數(shù)據(jù)庫增刪改,可以用下面的方法

一。 TransactionScope

TransactionScope 類是framework2.0 新增的一個(gè)類,在 System.Transactions命名空間中,使用時(shí)必須先添加 System.Transactions 引用;另外還要在windows控制面版-->管理工具-->服務(wù)-->Distributed Transaction Coordinator-->屬性-->啟動(dòng),啟動(dòng)這個(gè)服務(wù).示例代碼如下:


try
{
using (TransactionScopescope = new TransactionScope())
{
// 更新northwind數(shù)據(jù)庫的Employees表
using (SqlConnectionconOne = new SqlConnection( " server=.;uid=sa;pwd=123;database=northwind " ))
{
conOne.Open();

SqlCommandcommand
= new SqlCommand( " updateEmployeessetlastname='chen'whereemployeeid='1' " ,conOne);
int i = command.ExecuteNonQuery();
}

// 更新pubs數(shù)據(jù)庫的jobs表
using (SqlConnectionconTwo = new SqlConnection( " server=.;uid=sa;pwd=123;database=pubs " ))
{
conTwo.Open();
SqlCommandcommand
= new SqlCommand( " updatejobssetjob_desc='chen'wherejob_id='1' " ,conTwo);
int i = command.ExecuteNonQuery();
}

scope.Complete();
// 提交事物
}
}
catch (Exceptionex) // 發(fā)生異常后自動(dòng)回滾
{

// throw;
}

二。另一種方法就是建立兩個(gè)事務(wù),兩個(gè)連接了。代碼如下;


SqlConnectionconNorthwind = new SqlConnection( " server=.;uid=sa;pwd=123;database=northwind " );
SqlConnectionconPubs
= new SqlConnection( " server=.;uid=sa;pwd=123;database=pubs " );

SqlCommandcommandNorthwind
= new SqlCommand();
SqlCommandcommandPubs
= new SqlCommand();
try
{
conNorthwind.Open();
conPubs.Open();

// 更新northwind數(shù)據(jù)庫的Employees表
SqlTransactiontranNorthwind = conNorthwind.BeginTransaction();
commandNorthwind.Connection
= conNorthwind;
commandNorthwind.Transaction
= tranNorthwind;
commandNorthwind.CommandText
= " updateEmployeessetlastname='chen'whereemployeeid='1' " ;
int i = commandNorthwind.ExecuteNonQuery();

// 更新pubs數(shù)據(jù)庫的jobs表
SqlTransactiontranPubs = conPubs.BeginTransaction();
commandPubs.Connection
= conPubs;
commandPubs.Transaction
= tranPubs;
commandPubs.CommandText
= " updatejobssetjob_desc='chen'wherejob_id='1' " ;
int k = commandPubs.ExecuteNonQuery();

// thrownewException();

// 提交事務(wù)
commandNorthwind.Transaction.Commit();
conNorthwind.Close();

commandPubs.Transaction.Commit();
conPubs.Close();
}
catch (Exceptionex)
{

// 回滾事務(wù)
if (commandNorthwind.Transaction != null && conNorthwind != null )
{
commandNorthwind.Transaction.Rollback();
conNorthwind.Close();
}

if (commandPubs.Transaction != null && conPubs != null )
{
commandPubs.Transaction.Rollback();
conPubs.Close();
}
// throw;
}

在不同的用戶或數(shù)據(jù)庫中使用事務(wù)


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 宁蒗| 凯里市| 阳新县| 巴中市| 丹阳市| 盐边县| 阜新市| 崇礼县| 鞍山市| 广西| 板桥市| 霍城县| 海淀区| 四会市| 蒙阴县| 鄂温| 红原县| 布尔津县| 双牌县| 花莲市| 乐安县| 贡嘎县| 葫芦岛市| 武穴市| 华亭县| 河津市| 即墨市| 长春市| 静乐县| 阿图什市| 许昌市| 鹿邑县| 吉安市| 宝丰县| 崇仁县| 车险| 岳阳县| 闸北区| 忻州市| 获嘉县| 宁蒗|