`

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

 

1
10
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics