管理工具-->服" />

亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

在不同的用戶或數據庫中使用事務

系統 2925 0

C#中跨數據庫增刪改的事務控制

在程序的開發過程中,對數據庫的增刪改通常要用到事務,用來實現的全部更新和全部回滾。單數據庫還比較好做,如果遇到同時操作多個數據庫增刪改,可以用下面的方法

一。 TransactionScope

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


try
{
using (TransactionScopescope = new TransactionScope())
{
// 更新northwind數據庫的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數據庫的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) // 發生異常后自動回滾
{

// throw;
}

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


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數據庫的Employees表
SqlTransactiontranNorthwind = conNorthwind.BeginTransaction();
commandNorthwind.Connection
= conNorthwind;
commandNorthwind.Transaction
= tranNorthwind;
commandNorthwind.CommandText
= " updateEmployeessetlastname='chen'whereemployeeid='1' " ;
int i = commandNorthwind.ExecuteNonQuery();

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

// thrownewException();

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

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

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

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

在不同的用戶或數據庫中使用事務


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

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

【本文對您有幫助就好】

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

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 狠狠丁香激情久久综合 | 亚洲国产成人资源在线桃色 | 婷婷色站 | 91在线看| 免费国产成人午夜在线观看 | 一本色道久久爱88av俺来也 | 成年女人aaaaa毛片 | 五月婷婷色视频 | 99久久精品99999久久 | 国产福利在线免费 | 四虎国产精品永久在线播放 | 99久久国产综合精品成人影院 | 四虎永久在线精品免费观看地址 | 在线国产一区二区 | 一级特黄aaa大片 | 簧片在线播放 | 99成人在线| 女人十八毛片免费观 | 六月丁香色婷婷 | 国产a久久精品一区二区三区 | 一级毛片日韩a欧美 | 中文字幕在线视频在线看 | 亚洲国产成人久久精品hezyo | 97在线看 | 五月婷在线 | 男人深夜网站 | 成人精品在线 | 中文字幕亚洲综合久久菠萝蜜 | 久久成人免费网站 | 国产精品久久在线观看 | 国产综合精品久久亚洲 | 国产成人久久精品激情91 | 国产成人精品曰本亚洲78 | 99久久久精品 | www香蕉视频| 欧美成人毛片免费网站 | 四虎地址8848 | 欧美毛片 | 国产成人精品一区二区免费视频 | 欧美一级在线免费观看 | 欧美真人视频一级毛片 |