Problema ao Recuperar ID de Tabela com transação
Estou com um problema semelhante mas estou usando um transação e não está funcionando mensagem de erro após tentar recuperar o ID:
ExecuteScalar requer que o comando tenha uma transação quando a conexão atribuída ao comando estiver em uma transação local pendente. A propriedade Transaction do comando não foi inicializada.
Segue o código:
Using connection As New OleDbConnection(System.Configuration.ConfigurationManager.AppSettings("DadosBanco"))
Dim command As New OleDbCommand()
Dim transaction As OleDbTransaction
command.Connection = connection
Try
connection.Open()
transaction = connection.BeginTransaction()
command.Connection = connection
command.Transaction = transaction
command.CommandText = _
"Insert into BLOQUETOS (BLQNOSNUM, NumeroDocumento, BLQFISJUR, BLQREGCOD, BLQDATEMIS, BLQDATVCT, BLQVAL, BLQMUL, BLQJUR, BLQMSG1, BLQMSG2, BLQMSG3, BLQMSG4, BLQMSG5, Usuario, Data, Acao, Sessao) VALUES ('" & NumeroBoleta & "', '" & NumeroDocumento & "', 'F', " & HSerial.Value & ", '" & DataPrep.DataAAAAmmddhhmmss(Emissao.Text & " " & DateAndTime.Hour(DateAndTime.Now) & ":" & DateAndTime.Minute(DateAndTime.Now)) & "', '" & VencimentoParcela & "', " & Replace(ValorTotalBoleta, ",", ".") & ", " & Replace(ValorTotalBoleta36, ",", ".") & ", " & Replace(ValorTotalBoleta37, ",", ".") & ", '" & BLQMSG(0) & "', '" & BLQMSG(1) & "', '" & BLQMSG(2) & "', '" & BLQMSG(3) & "', '" & BLQMSG(4) & "', '" & Session("LoginUsuario") & "', '" & DataPrep.DataAAAAmmddhhmmss(DateAndTime.Now) & "', 'Boletas-Inclusão', '" & Session("vSessao") & "')"
command.ExecuteScalar()
Try
command = New OleDbCommand("SELECT @@IDENTITY", connection)
command.CommandType = CommandType.Text
CodigoBloqueto = command.ExecuteScalar()
Catch ex As Exception
Try
transaction.Rollback()
Catch
End Try
txtErro.Text &= "Um erro ocorreu ao tentar recuperar o ID.<br> " & Err.Description & "<hr>"
txtErro.Visible = True
MsgErro.Visible = True
Erro.Text &= txtErro.Text
Erro.Visible = True
Exit Sub
End Try
command.CommandText = _
"Insert into PARCELAS (COD, BLQNOSNUM, BLQCODSER, [Parcela Numero], [Numero de Parcelas], BLQINIFIM, BLQVALSER, FJ, Usuario, Data, Acao, DividaAtiva) VALUES ('" & CodigoBloqueto & "', '" & NumeroBoleta & "', '" & dr("BLQSERVICO") & "', " & J & ", " & Parcelas.SelectedValue & ", '" & dr("Origem") & "', " & Replace(ValParcelaServico(I), ",", ".") & ", 'F', '" & Session("LoginUsuario") & "', '" & DataPrep.DataAAAAmmddhhmmss(DateAndTime.Now) & "', 'Boletas-Inclusão', " & Divida.Checked & ")"
command.ExecuteNonQuery()
transaction.Commit()
Catch ex As Exception
txtErro.Text &= "Um erro ocorreu ao tentar gerar valores em serviços para o Bloqueto.<br>" & Err.Description & "<hr>"
txtErro.Visible = True
MsgErro.Visible = True
Erro.Text &= txtErro.Text
Erro.Visible = True
Try
transaction.Rollback()
Catch
End Try
End TryEnd Using
Muito Obrigado
Discussão (5)
Carregando comentários...