Usuário com melhor resposta
Criar SQLTransaction no vb.net

Pergunta
-
Prezado(a)s estamos com uma aplicação em VB.net onde ao se escolher a opção gravar irá fazer um insert em 3 tabelas. Precisaria de um exemplo com SQLTransaction, onde só me confirmaria a inserção apos sucesso nas 3 tabelas. Lembrando que estamos usando o VisualStudio2010 e SQLServer2008
Contando com a colaboração de todos
Marcelo Nogueira- Tipo Alterado Gustavo Maia Aguiar segunda-feira, 8 de agosto de 2011 02:06 É uma dúvida e não uma alteração
- Movido Gustavo Maia Aguiar segunda-feira, 8 de agosto de 2011 02:28 (De:Programação avançada com o SQL Server)
Respostas
-
Boa Noite,
O próprio help do produto, tem um exemplo bem intuitivo. Estou reproduzindo-o aqui.
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[ ]s,
Gustavo Maia Aguiar
http://gustavomaiaaguiar.wordpress.com
Classifique as respostas. O seu feedback é imprescindível- Sugerido como Resposta Gustavo Maia Aguiar segunda-feira, 8 de agosto de 2011 02:28
- Marcado como Resposta Marcelinho FaberCode segunda-feira, 8 de agosto de 2011 12:32
Todas as Respostas
-
Marcelo,
A dúvida é para montar a query ou desenvolver o processo de inserção dos dados?
Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com] -
-
Boa Noite,
O próprio help do produto, tem um exemplo bem intuitivo. Estou reproduzindo-o aqui.
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[ ]s,
Gustavo Maia Aguiar
http://gustavomaiaaguiar.wordpress.com
Classifique as respostas. O seu feedback é imprescindível- Sugerido como Resposta Gustavo Maia Aguiar segunda-feira, 8 de agosto de 2011 02:28
- Marcado como Resposta Marcelinho FaberCode segunda-feira, 8 de agosto de 2011 12:32