• 一个可以兼容各种数据库事务的使用范例


    传入实体执行(可添加 修改 删除)事务。

                        IDbHelper dbHelper = new OracleHelper(ConfigHelper.GetConfigString("BusinessDbConnection"));
                        bool result = true;
                        try
                        {
                             dbHelper.BeginTransaction();
                  //主表
                             TE_AREAManager manager = new TE_AREAManager(dbHelper, userInfo);
                             TE_AREAEntity tE_AREAEntity = manager.GetObject(dbHelper.SqlSafe(eatxtAREA_ID));
                             manager.Delete(tE_AREAEntity);
                 //子表
                             TE_AREA_SUBManager submanager = new TE_AREA_SUBManager(dbHelper, userInfo);
                             TE_AREA_SUBEntity tE_AREA_SUBEntity = submanager.GetObject(dbHelper.SqlSafe(eatxtAREA_ID));
                             submanager.Delete(tE_AREA_SUBEntity);
                 //事务提交 
                             dbHelper.CommitTransaction();
                        }
                        catch(Exception ex)
                        {
                 //事务回滚
                            dbHelper.RollbackTransaction();
                            result=false;
                        }
    

    可以传入sql语句执行事务

    IDbHelper dbHelper = new OracleHelper(ConfigHelper.GetConfigString("BusinessDbConnection"));
                        bool result = true;
                        try
                        {
                             dbHelper.BeginTransaction();
                             string   commandText = " DELETE FROM TE_AREA WHERE ID=" + dbHelper.SqlSafe(id);
                             dbHelper.ExecuteNonQuery(sqlString);
    
                             commandText = " DELETE FROM TE_AREA_SUB WHERE ID=" + dbHelper.SqlSafe(id);
                             dbHelper.ExecuteNonQuery(commandText);
    
                             dbHelper.CommitTransaction();
                        }
                        catch(Exception ex)
                        {
                            dbHelper.RollbackTransaction();
                            result=false;
                        }
    

     还可以同时传入实体,SQL语句

     IDbHelper dbHelper = new OracleHelper(ConfigHelper.GetConfigString("BusinessDbConnection"));
                        bool result = true;
                        try
                        {
                             dbHelper.BeginTransaction();
                   //主表
                             TE_AREAManager manager = new TE_AREAManager(dbHelper, userInfo);
                             TE_AREAEntity tE_AREAEntity = manager.GetObject(dbHelper.SqlSafe(eatxtAREA_ID));
                             manager.Delete(tE_AREAEntity);
                   //子表
                             TE_AREA_SUBManager submanager = new TE_AREA_SUBManager(dbHelper, userInfo);
                             TE_AREA_SUBEntity tE_AREA_SUBEntity = submanager.GetObject(dbHelper.SqlSafe(eatxtAREA_ID));
                             submanager.Delete(tE_AREA_SUBEntity);
                   
                   //执行SQL语句
                   string commandText = " DELETE FROM JINTIANDA WHERE ID=" + dbHelper.SqlSafe(id);
                   dbHelper.ExecuteNonQuery(commandText);
    
                   //事务提交 
                             dbHelper.CommitTransaction();
                        }
                        catch(Exception ex)
                        {
                  //事务回滚
                            dbHelper.RollbackTransaction();
                            result=false;
                        }
    

     
    以上事务处理方法是基于吉日嘎拉通用权限管理组件底层的代码上实现的,dbHelper,兼容各种数据库事务处理,非常省心省事。

    欢迎大家提供自己的使用经验,共同提高开发效率。

  • 相关阅读:
    ubuntu进入可视化界面
    MYSQL(一)
    PHP(一)
    MAC下安装NLTK
    初次使用NLTK
    iPhone项目的BaseSDK和DeploymentTarget
    ratelimit+redis+lua对接口限流
    java操作RabbitMq
    二维码生成并在下方添加文字,打包下载
    Redis六大淘汰策略:新来的员工不小心把Redis服务器撑爆了!!!
  • 原文地址:https://www.cnblogs.com/hnsongbiao/p/3682222.html
Copyright © 2020-2023  润新知