採用事務控制多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. }

            

    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章