zoukankan      html  css  js  c++  java
  • RDIFramework.NET 框架兼容各种数据库类型事务使用范例参考

    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;
            }
  • 相关阅读:
    BZOJ_2039_[2009国家集训队]employ人员雇佣_ 最小割
    BZOJ_4238_电压_树上差分+dfs树
    BZOJ_4516_[Sdoi2016]生成魔咒_后缀数组+ST表+splay
    BZOJ_3048_[Usaco2013 Jan]Cow Lineup _双指针
    BZOJ_3689_异或之_可持久化Trie+堆
    BZOJ_2006_[NOI2010]超级钢琴_贪心+堆+ST表
    BZOJ_3675_[Apio2014]序列分割_斜率优化
    BZOJ_4518_[Sdoi2016]征途_斜率优化
    BZOJ_1407_[Noi2002]Savage_EXGCD
    [转载]ubuntu常用命令
  • 原文地址:https://www.cnblogs.com/huyong/p/4207840.html
Copyright © 2011-2022 走看看