RDIFramework.NET 框架兼容各种数据库类型事务使用范例参考
RDIFramwork.NET框架对数据库的事务做了很好的控制,对多表或多条语句需要在同一事务执行提供了很好的支持,同时支持任意主流类型的数据库,下面的代码可以给用户做为参考。用户可以任意扩展使用。
1、传入实体执行执行事务测试
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
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语句事务测试
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
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;
}
|
本文转自yonghu86 51CTO博客,原文链接:http://blog.51cto.com/yonghu/1600509,如需转载请自行联系原作者