事务 OracleTransaction

OracleHelper 类

ContractedBlock.gif ExpandedBlockStart.gif View Code
 
   
1 public static int ExecuteNonQuery(OracleTransaction trans,CommandType cmdType, string cmdText,IList < OracleParameter > commandParameters = null )
2 {
3 try
4 {
5 OracleCommand cmd = new OracleCommand();
6 PrepareCommand(cmd,trans.Connection,trans,cmdType,cmdText,commandParameters);
7 int val = cmd.ExecuteNonQuery();
8 cmd.Parameters.Clear();
9 return val;
10 }
11 catch
12 {
13 return - 1 ;
14 }
15 }
ContractedBlock.gif ExpandedBlockStart.gif PrepareCommand
 
   
1 private static void PrepareCommand(OracleCommand cmd,OracleConnection conn,OracleTransaction trans,CommansType cmdType, string cmdText,IList < OracleParamenter > commandParameters = null )
2 {
3 if (conn.State != ConnectionState.Open)
4 conn.Open();
5
6 cmd.Connection = conn;
7 cmd.CommandText = cmdText;
8 cmd.CommandType = cmdType;
9
10 if (trans != null )
11 cmd.Transaction = trans;
12
13 if (commandParameters != null )
14 {
15 foreach (OracleParameter parm in commandParameters)
16 cmd.Parameters.Add(parm);
17 }
18 }

OracleTransaction.cs

ContractedBlock.gif ExpandedBlockStart.gif OracleTransaction 使用
 
   
1 OracleConnection connection = new OracleConnection(OracleHelper.GetConnStr());
2   if (connection.State != ConnectionState.Open)
3 {
4 connection.Open();
5 }
6
7 OracleTransaction transaction = connection.BeginTransaction();
8
9   try
10 {
11 string sql1 = " delete from table1 where id=:id " ;
12 string sql2 = " delete from table2 where id=:id " ;
13 OracleParameter parm = new OracleParameter( " :id " ,id);
14 IList < OracleParameter > lparm = new List < OracleParameter > ();
15 lparm.Add(parm);
16
17 OracleHelper.ExecuteNonQuery(transaction,CommandType.Text,sql1,lparm);
18 OracleHelper.ExecuteNonQuery(transaction,CommandType.text,sql2,lparm);
19 transaction.Commit();
20 }
21   catch (Exception ex)
22 {
23 transaction.Rollback();
24 throw ex;
25 }
26   finally
27 {
28 if (connection.State != ConnectionState.Closed)
29 {
30 connection.Close();
31 }
32 }

转载于:https://www.cnblogs.com/yanlan/archive/2011/05/31/transaction.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值