博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
RDIFramework.NET 框架兼容各种数据库类型事务使用范例参考
阅读量:4915 次
发布时间:2019-06-11

本文共 2353 字,大约阅读时间需要 7 分钟。

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;        }

 

posted on
2015-01-08 09:10 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/huyong/p/4207840.html

你可能感兴趣的文章
Ionic学习
查看>>
ContentProvider的使用
查看>>
使用聚合接口获取汉字数据字典
查看>>
STM32之DMA实例
查看>>
Spring MVC入门知识总结
查看>>
java RandomAccessFile类(随机访问文件)
查看>>
编写弹窗 并居中
查看>>
XML Helper XML操作类
查看>>
2、iptables基本应用
查看>>
程序员成长过程
查看>>
项目实战02:nginx 反向代理负载均衡、动静分离和缓存的实现
查看>>
BZOJ3139/BZOJ1306 HNOI2013比赛/CQOI2009循环赛(搜索)
查看>>
C语言反汇编入门实例
查看>>
tab标签页
查看>>
IDEA快捷键
查看>>
冻结页面
查看>>
Scala-数组
查看>>
【计算机视觉】opencv读取多个摄像头
查看>>
【VS开发】MP4与H.264
查看>>
【Qt开发】V4L2 API详解 Camera详细设置
查看>>