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;
            }
  • 相关阅读:
    飞入飞出效果
    【JSOI 2008】星球大战 Starwar
    POJ 1094 Sorting It All Out
    POJ 2728 Desert King
    【ZJOI 2008】树的统计 Count
    【SCOI 2009】生日快乐
    POJ 3580 SuperMemo
    POJ 1639 Picnic Planning
    POJ 2976 Dropping Tests
    SPOJ QTREE
  • 原文地址:https://www.cnblogs.com/huyong/p/4207840.html
Copyright © 2011-2022 走看看