程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> 數據庫組件 Hxj.Data (十九) (事務二)

數據庫組件 Hxj.Data (十九) (事務二)

編輯:關於ASP.NET

對事務有進行了更新,又得去下載一下新版本,對上一版本兼容,擴充了DbTrans方法。

相比十七節(事務)中的事務寫法簡潔了一些。如下

using (DbTrans trans = DbSession.Default.BeginTransaction())
{
     trans.Update<Products>(Products._.ProductName, "apple", Products._.ProductID == 1);
     trans.Update<Products>(Products._.ProductName, "egg", Products._.ProductID == 2);
     trans.Commit();
}

生成的sql:

Text:

UPDATE [Products] SET [ProductName]=@e6b783222bb34b98b56fc3012500a0d5
WHERE [Products].[ProductID] = @bdb38c8f8fab405d93231e1b2f19c1e2 

Parameters:

@e6b783222bb34b98b56fc3012500a0d5[String] = apple
@bdb38c8f8fab405d93231e1b2f19c1e2[Int32] = 1

Text:

UPDATE [Products] SET [ProductName]=@4184e5de4ed545d9bf3f0ba9a38ed6fa
WHERE [Products].[ProductID] = @f1da00f3628a43c2a9c66678e71049c7 

Parameters:

@4184e5de4ed545d9bf3f0ba9a38ed6fa[String] = egg 
@f1da00f3628a43c2a9c66678e71049c7[Int32] = 2

執行效果是一樣的。

try catch的寫法也是一樣的。

DbTrans trans = DbSession.Default.BeginTransaction();
try
{
     trans.Update<Products>(Products._.ProductName, "apple", Products._.ProductID == 1);
     trans.Update<Products>(Products._.ProductName, "egg", Products._.ProductID == 2);
     trans.Commit();
}
catch
{
     trans.Rollback();
}
finally
{
     trans.Close();
}

組件中的事務並不是分布式事務,只是簡單的事務封裝。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved