Tôi khuyên bạn nên sử dụng TransactionScope , bởi vì bạn có thể sử dụng nó bất kỳ trường hợp nào mà DB bạn đang sử dụng. Bạn thậm chí có thể thực hiện các giao dịch phân tán (hoạt động dựa trên nhiều cơ sở dữ liệu trong cùng một giao dịch) với nó.
Bạn có thể tham khảo một liên kết để biết ví dụ về mã, nhưng nói chung, bạn thực hiện điều này:
try
{
using (TransactionScope scope = new TransactionScope())
{
using (MySqlConnection connection1 = new MySqlConnection (connectionString))
{
// Opening the connection automatically enlists it in the
// TransactionScope as a lightweight transaction.
connection1.Open();
// create the DB commands and perform the DB operations
.
.
.
// The Complete method commits the transaction. If an exception has been thrown,
// Complete is not called and the transaction is rolled back.
scope.Complete();
}
}
}
catch (Exception e)
{
// something went wrong, handle the exception accordingly. Note
// that since we did not call TransactionScope.Complete, nothing
// gets committed to the DB.
}