采用事务控制多sql语句同步

    有时候,需要一步作业多个sql语句,或者同时把一句插入到不同的数据库中。

    这个时候,就要考虑语句执行的同步性。

    通常,可以采用事务机制来进行控制。

    

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. using System.Data;
  5. using System.Data.OracleClient;
  6. namespace TransSqlDemo
  7. {
  8.     class Program
  9.     {
  10.         private string connstr = "User ID=CT_ISD01;Data Source=ORATEST.centurydsp.com;Password=ISD01_CT";
  11.        
  12.         static void Main(string[] args)
  13.         {
  14.             Program p = new Program();
  15.             p.DbOp();
  16.             Console.WriteLine("Execute Successfully");
  17.             Console.Read();
  18.         }
  19.         private void DbOp()
  20.         {
  21.             using (OracleConnection conn = new OracleConnection(connstr))
  22.             {
  23.                 conn.Open();
  24.                 OracleTransaction trans = null;
  25.                 trans = conn.BeginTransaction();  //事务开始
  26.                 OracleCommand cmd = conn.CreateCommand();
  27.                 cmd.Transaction = trans;  //---
  28.                 try
  29.                 {
  30.                     string sql = "insert into ivan_test(id,name) values(15133,'test')";
  31.                     string sql2 = "insert into ivan_test(id,name) values(15134,'test')";
  32.                     cmd.CommandText = sql;
  33.                     cmd.ExecuteNonQuery();
  34.                     cmd.CommandText = sql2;
  35.                     cmd.ExecuteNonQuery();
  36.                     trans.Commit();  //事务提交
  37.                 }
  38.                 catch (Exception ex)
  39.                 {
  40.                     trans.Rollback(); //如果出错,则回滚
  41.                     throw new Exception(ex.Message);
  42.                 }
  43.                 finally
  44.                 {
  45.                     conn.Close();
  46.                 }
  47.             }
  48.         }
  49.     }
  50. }

            

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值