posted by 네코냥이 2014. 2. 8. 07:30

using 문을 사용해서 연결객체를 인자로 넘기고 트랜잭션을 처리 할것이다.

아래는 그 예제에 대한 간단한 함수의 내용이다. 트랜잭션 클래스는 SqlTransaction 이며
SqlConnection 객체의 BeginTransaction 함수를 써서 시작한다. 그리고 리턴받은
SqlTrannsaction 객체로 Commit 함수를 호출해 실행한후 SqlConnection을 닫으면 된다.


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
31
32
33
public void TotalDBExecute()
{
    string updateSql = "UPDATE Categories SET CategoryName = 'Car' WHERE CategoryID = 10";
    string deleteSql = "DELETE Categories WHERE CategoryID = 10";
    string conn = @"Server=222.232.2.22;Database=test;user=testuser;password=1111;Integrated Security=SSPI;";
 
    using (SqlConnection con = new SqlConnection(conn))
    {
        con.Open();
 
        // SqlTrasaction 클래스의인스턴스생성
        SqlTransaction tran = con.BeginTransaction(); // 트랜잭션시작
        SqlCommand cmd = new SqlCommand();
 
        cmd.Connection = con;
        cmd.Transaction = tran; // 현재사용할트랜잭션객체지정
 
        try
        {
            cmd.CommandText = updateSql;// 쿼리지정
            cmd.ExecuteNonQuery(); // 실행
 
            cmd.CommandText = deleteSql;
            cmd.ExecuteNonQuery();
 
            tran.Commit(); // 트랜잭션commit
        }
        catch (Exception ex)
        {
            tran.Rollback(); // 에러발생시rollback
        }
    }
}


'.NET > C#' 카테고리의 다른 글

ASP.NET 2.0 DataTable => JSON 변환  (0) 2014.03.11
DB 프로시저 실행  (0) 2014.02.11
XML 유효성 및 자식노드 개수 체크  (0) 2014.01.17
[C#] Anonymous Types in C#  (2) 2014.01.06
[C#] 델리게이트 일부내용  (0) 2014.01.06