PDA

View Full Version : تراکنش در vb.net



esi363
شنبه 31 فروردین 1387, 14:48 عصر
لطفا" در مورد نحوه نوشتن تراکنش در vb.net به من کمک کنید:اشتباه:

علیرضا مداح
شنبه 31 فروردین 1387, 19:44 عصر
سلام،
شما باید ابتدا توسط متد BeginTransaction مربوط به شیء SqlConnection ، یک تراکنش جدید ایجاد و سپس یک SqlCommand توسط SqlConnection ایجاد شده بسازید ، سپس فرامین مورد نظر خود را توسط متدهایی از قبیل ExecuteNoneQuery اجرا کرده و برای اعمال تغییرات از متد Commit و برای لغو آنها از متد Rollback مربوط به شیء SqlTransaction استفاده نمایید.
مثالی از MSDN :


Private Sub ExecuteSqlTransaction(ByVal connectionString As String)
Using connection As New SqlConnection(connectionString)
connection.Open()
Dim command As SqlCommand = connection.CreateCommand()
Dim transaction As SqlTransaction
' Start a local transaction
transaction = connection.BeginTransaction("SampleTransaction")
' Must assign both transaction object and connection
' to Command object for a pending local transaction.
command.Connection = connection
command.Transaction = transaction
Try
command.CommandText = _
"Insert into Region (RegionID, RegionDescription) VALUES (100, 'Description')"
command.ExecuteNonQuery()
command.CommandText = _
"Insert into Region (RegionID, RegionDescription) VALUES (101, 'Description')"
command.ExecuteNonQuery()
' Attempt to commit the transaction.
transaction.Commit()
Console.WriteLine("Both records are written to database.")
Catch ex As Exception
Console.WriteLine("Commit Exception Type: {0}", ex.GetType())
Console.WriteLine(" Message: {0}", ex.Message)
' Attempt to roll back the transaction.
Try
transaction.Rollback()
Catch ex2 As Exception
' This catch block will handle any errors that may have occurred
' on the server that would cause the rollback to fail, such as
' a closed connection.
Console.WriteLine("Rollback Exception Type: {0}", ex2.GetType())
Console.WriteLine(" Message: {0}", ex2.Message)
End Try
End Try
End Using
End Sub