RDIFramework.NET 框架兼容各种数据库类型事务使用范例参考

简介:

RDIFramework.NET 框架兼容各种数据库类型事务使用范例参考

 

  RDIFramwork.NET框架对数据库的事务做了很好的控制,对多表或多条语句需要在同一事务执行提供了很好的支持,同时支持任意主流类型的数据库,下面的代码可以给用户做为参考。用户可以任意扩展使用。


1、传入实体执行执行事务测试

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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语句事务测试

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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;
}
本文转自yonghu86 51CTO博客,原文链接:http://blog.51cto.com/yonghu/1600509,如需转载请自行联系原作者
相关文章
|
15天前
|
设计模式 开发框架 JavaScript
基于.NET8 + Vue/UniApp前后端分离的快速开发框架,开箱即用!
基于.NET8 + Vue/UniApp前后端分离的快速开发框架,开箱即用!
|
15天前
|
消息中间件 监控 数据可视化
基于.NET开源、功能强大且灵活的工作流引擎框架
基于.NET开源、功能强大且灵活的工作流引擎框架
|
15天前
|
开发框架 网络协议 .NET
C#/.NET/.NET Core优秀项目和框架2024年10月简报
C#/.NET/.NET Core优秀项目和框架2024年10月简报
|
2月前
|
数据库
什么是数据库的事务隔离级别,有什么作用
【10月更文挑战第21】什么是数据库的事务隔离级别,有什么作用
14 3
|
2月前
|
存储 关系型数据库 数据挖掘
什么是数据库的事务隔离级别
【10月更文挑战第21】什么是数据库的事务隔离级别
26 1
|
2月前
|
存储 数据库 数据库管理
数据库事务安全性控制如何实现呢
【10月更文挑战第15天】数据库事务安全性控制如何实现呢
|
15天前
|
网络协议 Unix Linux
精选2款C#/.NET开源且功能强大的网络通信框架
精选2款C#/.NET开源且功能强大的网络通信框架
|
15天前
|
开发框架 JavaScript 前端开发
2024年全面且功能强大的.NET快速开发框架推荐,效率提升利器!
2024年全面且功能强大的.NET快速开发框架推荐,效率提升利器!
|
15天前
|
网络协议 网络安全 Apache
一个整合性、功能丰富的.NET网络通信框架
一个整合性、功能丰富的.NET网络通信框架
|
2月前
|
供应链 数据库
数据库事务安全性控制有什么应用场景吗
【10月更文挑战第15天】数据库事务安全性控制有什么应用场景吗