VB.NET에서 데이터베이스 트랜잭션 처리하기

2023. 4. 17. 11:23VB.NET/왕초보

데이터베이스 트랜잭션(Transaction)이란, 데이터베이스에서 한 번에 처리되어야 하는 작업들을 묶어서 하나의 단위로 처리하는 것을 의미합니다. 데이터베이스에서 트랜잭션은 원자성(Atomicity), 일관성(Consistency), 격리성(Isolation), 영속성(Durability)의 특성을 가져야 합니다.

 

즉, 트랜잭션은 모두 실행되거나 모두 실행되지 않아야 하며, 실행 전후의 데이터베이스 상태는 일관성 있어야 하며, 다른 트랜잭션에 영향을 받지 않아야 하며, 성공한 경우 영구적으로 반영되어야 합니다.

 

VB.NET에서 데이터베이스 트랜잭션 처리하기

VB.NET에서 데이터베이스 트랜잭션 처리하기

VB.NET에서 데이터베이스 트랜잭션 처리 방법

VB.NET에서 데이터베이스 트랜잭션 처리를 위해서는 System.Data.SqlClient 네임스페이스의 SqlTransaction 클래스를 이용합니다. SqlTransaction 클래스는 SqlConnection 개체와 함께 사용되며, BeginTransaction() 메서드를 호출하여 트랜잭션을 시작하고, Commit() 또는 Rollback() 메서드를 호출하여 트랜잭션을 완료합니다. 다음은 VB.NET에서 데이터베이스 트랜잭션을 처리하는 예제 코드입니다.

Dim connectionString As String = "Data Source=(local);Initial Catalog=MyDatabase;Integrated Security=True"
Using connection As New SqlConnection(connectionString)
    connection.Open()

    Dim transaction As SqlTransaction = connection.BeginTransaction()

    Try
        Dim command1 As New SqlCommand("INSERT INTO MyTable (Column1, Column2) VALUES ('Value1', 'Value2')", connection, transaction)
        command1.ExecuteNonQuery()

        Dim command2 As New SqlCommand("UPDATE MyTable SET Column1='NewValue' WHERE Column2='Value2'", connection, transaction)
        command2.ExecuteNonQuery()

        transaction.Commit()
    Catch ex As Exception
        transaction.Rollback()
    End Try
End Using

위의 코드에서는 SqlConnection 개체를 생성하여 데이터베이스에 연결하고, BeginTransaction() 메서드를 호출하여 트랜잭션을 시작합니다. 그리고 각각의 쿼리를 SqlCommand 개체로 생성하여 트랜잭션에 추가하고, 마지막으로 Commit() 메서드를 호출하여 트랜잭션을 완료합니다. 만약 예외가 발생하면 Rollback() 메서드를 호출하여 트랜잭션을 취소합니다.

 

위의 코드에서는 SqlConnection 개체를 Using 블록으로 감싸서 자동으로 연결을 해제하도록 하였습니다. 이는 Dispose() 메서드를 호출하여 연결을 해제하는 것과 같은 효과를 가집니다. 또한, Try-Catch 블록을 이용하여 예외 처리를 하였습니다. 만약 예외가 발생하면 Rollback() 메서드를 호출하여 트랜잭션을 취소합니다.

VB.NET에서 데이터베이스 트랜잭션을 처리할 때 주의할 점

VB.NET에서 데이터베이스 트랜잭션을 처리할 때 주의해야 할 점이 있습니다. 가장 중요한 것은 트랜잭션을 시작하고 완료하는 것입니다. 만약 트랜잭션을 시작한 후에 다른 연결에서 데이터를 변경하면 예상치 못한 결과가 발생할 수 있습니다. 따라서 트랜잭션을 시작하고 완료할 때는 하나의 연결을 사용해야 합니다.

 

또한, 트랜잭션을 처리할 때는 예외 처리를 꼭 해야 합니다. 예외가 발생하면 Rollback() 메서드를 호출하여 트랜잭션을 취소해야 합니다. 그렇지 않으면 트랜잭션이 완료되지 않은 상태로 남아 있게 되어 데이터베이스의 일관성이 깨질 수 있습니다.

마치며...

데이터베이스 트랜잭션은 반드시 필요한 경우에만 사용해야 합니다. 트랜잭션을 사용하면 데이터베이스의 성능이 저하될 수 있기 때문입니다.

 

관련글 : 2023.02.21 - [VB.NET/MS-SQL] - [VB.NET] 차근차근 MS-Access DB 연결후 사용법

 

[VB.NET] 차근차근 MS-Access DB 연결후 사용법

VB.NET을 업무용으로 사용할때는 일반적으로 MS-SQL을 사용하는 경향이 강하지만, 개인용이나 과제, 레포트용으로 사용할때는 사실 Access만 있어도 충분하다. Db에 연결하는 방법, SQL Query문을 사용

chakhani.tistory.com

 

반응형