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;
            }
  • 相关阅读:
    hdu1006
    矩阵快速幂计算hdu1575
    MATLAB逻辑函数
    pair类型
    MATLAB基础操作符与数据格式显示
    MATLAB矩阵基础运算
    状态压缩DP常遇到的位运算
    HDU1565方格取数
    C语言的数组名和对数组名取地址
    ubunut 12.04 (64bit) android编译环境搭建
  • 原文地址:https://www.cnblogs.com/huyong/p/4207840.html
Copyright © 2011-2022 走看看