版權聲明:本文為部落客原創文章,未經部落客允許不得轉載。 https://blog.csdn.net/chinahuyong/article/details/42489361
RDIFramework.NET 架構相容各種資料庫類型事務使用範例參考
RDIFramwork.NET架構對資料庫的事務做了很好的控制,對多表或多條語句需要在同一事務執行提供了很好的支援,同時支援任意主流類型的資料庫,下面的代碼可以給使用者做為參考。使用者可以任意擴充使用。
1、傳入實體執行執行事務測試
private bool InEntityTransactionTest(string mainId,string detailId)
{
//可以支援任意流行資料庫類型,指定相關的資料庫提供者即可(OracleProvider、SqlProvider、SqLiteProvider、MySqlProvider、DB2Provider、OleDbProvider)
IDbProvider dbProvider = new OracleProvider(SystemInfo.BusinessDbConnectionString);
bool result = true;
try
{
dbProvider.BeginTransaction();
//主表
CASE_PRODUCTIN_MAINManager manager = new CASE_PRODUCTIN_MAINManager(dbProvider, Utils.UserInfo);
CASE_PRODUCTIN_MAINEntity mainEntity = manager.GetEntity(dbProvider.SqlSafe(mainId));
manager.Delete(mainEntity);
//子表
CASE_PRODUCTIN_DETAILManager detailManager = new CASE_PRODUCTIN_DETAILManager(dbProvider, Utils.UserInfo);
CASE_PRODUCTIN_DETAILEntity detailEntity = detailManager.GetEntity(dbProvider.SqlSafe(detailId));
detailManager.Delete(detailEntity);
//事務送出
dbProvider.CommitTransaction();
}
catch (Exception ex)
{
//事務復原
dbProvider.RollbackTransaction();
result = false;
}
return result;
}
2、傳入Sql語句事務測試
private bool InSqlTransactionTest(string mainId, string detailId)
{
//可以支援任意流行資料庫類型,指定相關的資料庫提供者即可(OracleProvider、SqlProvider、SqLiteProvider、MySqlProvider、DB2Provider、OleDbProvider)
IDbProvider dbProvider = new SqlProvider(SystemInfo.BusinessDbConnectionString);
bool result = true;
try
{
dbProvider.BeginTransaction();
//主表
string sqlMain = string.Format("DELETE FROM CASE_PRODUCTIN_MAIN WHERE ID = {0}", mainId);
dbProvider.ExecuteNonQuery(sqlMain);
//子表
string sqlDetail = string.Format("DELETE FROM CASE_PRODUCTIN_DETAIL WHERE ID = {0}", detailId);
dbProvider.ExecuteNonQuery(sqlMain);
//事務送出
dbProvider.CommitTransaction();
}
catch (Exception ex)
{
//事務復原
dbProvider.RollbackTransaction();
result = false;
}
return result;
}
作者:
EricHu出處:
http://blog.csdn.net/chinahuyong http://www.cnblogs.com/huyong/Email:
[email protected]QQ交流:406590790
QQ群:237326100
架構部落格:
http://blog.csdn.net/chinahuyong http://www.cnblogs.com/huyong RDIFramework.NET,基于.NET的快速資訊化系統開發、整合架構,給使用者和開發者最佳的.Net架構部署方案。
關于作者:進階工程師、資訊系統項目管理師、DBA。專注于微軟平台項目架構、管理和企業解決方案,多年項目開發與管理經驗,曾多次組織并開發多個大型項目,在面向對象、面向服務以及資料庫領域有一定的造詣。現主要從事基于
架構的技術開發、咨詢工作,主要服務于金融、醫療衛生、鐵路、電信、物流、物聯網、制造、零售等行業。
如有問題或建議,請多多賜教!
本文版權歸作者和CSDN共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接,如有問題,可以通過郵箱或QQ 聯系我,非常感謝。