首页 > 代码库 > RDIFramework.NET 框架兼容各种数据库类型事务使用范例参考

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

 

作者: EricHu出处: http://www.cnblogs.com/huyongEmail: 406590790@qq.comQQ 交流:406590790 
QQ群:237326100平台博客: 【CSDN】http://blog.csdn.net/chinahuyong 【CNBLOGS】http://www.cnblogs.com/huyong关于作者:高级工程师、信息系统项目管理师、DBA。专注于微软平台项目架构、管理和企业解决方案,多年项目开发与管理经验,曾多次组织并开发多个大型项目,精通DotNet,DB(SqlServer、Oracle等)技术。熟悉Java、Delhpi及Linux操作系统,有扎实的网络知识。在面向对象、面向服务以及数据库领域有一定的造诣。现从事DB管理与开发、WinForm、WCF、WebService、网页数据抓取以及ASP.NET等项目管理、开发、架构等工作。如有问题或建议,请多多赐教!本文版权归作者和CNBLOGS博客共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,如有问题,可以通过邮箱或QQ 联系我,非常感谢。

技术分享

RDIFramework.NET 框架兼容各种数据库类型事务使用范例参考