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,如需转载请自行联系原作者
相关文章
|
1月前
|
存储 缓存 Java
java语言后台管理ruoyi后台管理框架-登录提示“无效的会话,或者会话已过期,请重新登录。”-扩展知识数据库中密码加密的方法-问题如何解决-以及如何重置若依后台管理框架admin密码-优雅草卓伊凡
java语言后台管理ruoyi后台管理框架-登录提示“无效的会话,或者会话已过期,请重新登录。”-扩展知识数据库中密码加密的方法-问题如何解决-以及如何重置若依后台管理框架admin密码-优雅草卓伊凡
166 3
java语言后台管理ruoyi后台管理框架-登录提示“无效的会话,或者会话已过期,请重新登录。”-扩展知识数据库中密码加密的方法-问题如何解决-以及如何重置若依后台管理框架admin密码-优雅草卓伊凡
|
9天前
|
Oracle 关系型数据库 Java
|
9天前
|
SQL 数据库 索引
【YashanDB数据库】大事务回滚导致其他操作无法执行,报错YAS-02016 no free undo blocks
大事务回滚导致其他操作无法执行,报错YAS-02016 no free undo blocks
|
4月前
|
数据库 C# 开发者
ADO.NET连接到南大通用GBase 8s数据库
ADO.NET连接到南大通用GBase 8s数据库
|
3月前
|
SQL 存储 Java
数据库———事务及bug的解决
事务的一些概念,并发事务以及并发事务引起的bug,脏读,不可重复读,幻读,数据库中的隔离级别,事务的简单应用
|
4月前
|
存储 缓存 NoSQL
2款使用.NET开发的数据库系统
2款使用.NET开发的数据库系统
|
5月前
|
数据库
什么是数据库的事务隔离级别,有什么作用
【10月更文挑战第21】什么是数据库的事务隔离级别,有什么作用
66 3
|
4月前
|
数据库连接 数据库 C#
Windows下C# 通过ADO.NET方式连接南大通用GBase 8s数据库(上)
Windows下C# 通过ADO.NET方式连接南大通用GBase 8s数据库(上)
|
4月前
|
数据库连接 数据库 C#
Windows下C# 通过ADO.NET方式连接南大通用GBase 8s数据库(下)
本文接续前文,深入讲解了在Windows环境下使用C#和ADO.NET操作南大通用GBase 8s数据库的方法。通过Visual Studio 2022创建项目,添加GBase 8s的DLL引用,并提供了详细的C#代码示例,涵盖数据库连接、表的创建与修改、数据的增删查改等操作,旨在帮助开发者提高数据库管理效率。
|
5月前
|
存储 关系型数据库 数据挖掘
什么是数据库的事务隔离级别
【10月更文挑战第21】什么是数据库的事务隔离级别
85 1

热门文章

最新文章