C# & ASP.NET

C# 오라클 insert,update 할때 트랜잭션(transaction) 처리

조심이 2009. 4. 9. 17:36
반응형

 
여러개의 입력문 또는 업데이트문을 사용할 경우 에러등이 발생하였을 경우엔 롤백을 시켜야 하는 경우가 있다.
이럴경우 트랜잭션(transaction) 을 이용하여 처리한다.

오라클을 사용한다고 가정하고..

   OracleConnection  con ;
   OracleCommand  comm ;

   OracleTransaction STrans=null;  //오라클 트랜젝션

    con = new OracleConnection();
    
   con.ConnectionString = " Data Source=DAUL;USER ID=scott; Password=tiger; ..." ; 
   con.Open();
   
  STrans =con.BeginTransaction(); 

   comm = new OracleCommand("",con);
  
  try{
               comm.Transaction = STrans;  //커맨드에 트랜젝션 명시

    
   comm.CommandText = "INSERT INTO.......;
   comm.ExecuteNonQuery() ; 
  
   comm.CommandText = "INSERT INTO......;
   comm.ExecuteNonQuery() ; 
   ..... 계속

comm.Transaction.Commit();   //커밋

}catch(Exception ex){

 comm.Transaction.Rollback();   //롤백
}
finally{
            comm.Dispose();
            con.Close();

}

반응형