달력

42024  이전 다음

  • 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
  • 27
  • 28
  • 29
  • 30

[C#] 트랜잭션 사용

.NET 2005. 6. 15. 10:45

1-1    SqlTransaction 을 이용한 방법

         

         

SqlConnection conn = new SqlConnection(커넥션 스트링);

conn.Open();

SqlTransaction transaction = new SqlTransaction();

SqlCommand command = new SqlCommand();

command.Transaction = transaction;

 

try{

    command.CommandText = insert into .;

    command.ExecuteNonQuery();

   

    command.CommandText = update xxx set …….. where ;

    command.ExecuteNonQuery();

   

    transaction.Commit();

}catch(Exception e){

    transaction.Rollback();

}finally{

    conn.Close();

}

 

 

1-2              Stored Procedure 를 이용하는 방법

트랜잭션이 발생하는 쿼리 묶음을 저장 프로시저로 만들고 호출한다.

 

1-3              System.EnterpriseServices 를 이용하는 방법(Com+)

 

.

using System.EnterpriseServices;

 

namespace . {

   

[Transaction(TransactionOption.Required)]

public class xxxx{

 

    public void addCart(int id ,

int productCode,

string productName,

int quantity)

    {

        SqlConnection conn;

        try{

                conn = new SqlConnection(접속문자열);

                SqlCommand command = new SqlCommand();

 

                command.CommandText = insert .;

                command.ExecuteNonQuery();

 

                command.CommandText = update ..;

                command.ExecuteNonQuery();

 

                ContextUtils.SetComplete();

  }catch(Exception e){

    ContextUtils.SetAbort();

  }finally{

    conn.close();

  }

}

}

}

 

 

개인적으로는 우리 DBA 가 저장프로시저 제대로 짜주면 1-2 로 하겠는데

쿼리를 나더러 짜라거나.. 하면 1-3 으로 가야겠다.

 

웹 개발에서 ASP.NET 은 정말 편리하고 빨리 개발할 수 있다는걸 또다시 절실히 느꼈다...

 

com+ 관련 옵션좀 찾아서 정리점 해놔야겠다....

Posted by tornado
|