USAR LAST_INSERT_ID

W8.LISBOA 09/08/2015 15:39:51
#449764
Ola pessoal,

Como obter o ultimo insert no mysql, via vb.net?

Vi algo sobre LAST_INSERT_ID mas não consegui colocar na pratica, alguma luz?

  Private Sub salvalancamentos()
Using con As MySqlConnection = ConexaoComMysql()
Dim cmd As MySqlCommand
con.Open()
cmd = New MySqlCommand([Ô]INSERT INTO Teste (Danfe, Valor, RespFiscal) VALUES (@Danfe, @Valor, @RespFiscal; SELECT LAST_INSERT_ID())[Ô], con)
cmd.Parameters.Clear()
cmd.Parameters.Add([Ô]@Danfe[Ô], MySqlDbType.VarChar, 44).Value = TextBoxChave.Text
cmd.Parameters.Add([Ô]@Valor[Ô], MySqlDbType.Double).Value = TxtValorTotal.Text
cmd.Parameters.Add([Ô]@RespFiscal[Ô], MySqlDbType.VarChar).Value = TextBox6.Text
Try
cmd.ExecuteNonQuery()
Dim cmd_result As Integer = CInt(cmd.ExecuteScalar())
MsgBox(cmd_result)
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
con.Close()
End Using
JABA 09/08/2015 17:11:18
#449765
Retire do seu código o [Ô]cmd.[txt-color=#080808]ExecuteNonQuery[/txt-color]()[Ô] e também a conversão para [txt-color=#080808]Int [/txt-color]no [Ô]ExecuteScalar[Ô]

Private Sub salvalancamentos()
Using con As MySqlConnection = ConexaoComMysql()
Dim cmd As MySqlCommand
con.Open()
cmd = New MySqlCommand([Ô]INSERT INTO Teste (Danfe, Valor, RespFiscal) VALUES (@Danfe, @Valor, @RespFiscal; SELECT LAST_INSERT_ID())[Ô], con)
cmd.Parameters.Clear()
cmd.Parameters.Add([Ô]@Danfe[Ô], MySqlDbType.VarChar, 44).Value = TextBoxChave.Text
cmd.Parameters.Add([Ô]@Valor[Ô], MySqlDbType.Double).Value = TxtValorTotal.Text
cmd.Parameters.Add([Ô]@RespFiscal[Ô], MySqlDbType.VarChar).Value = TextBox6.Text
Try
Dim cmd_result = cmd.ExecuteScalar()
MsgBox(cmd_result)
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
con.Close()
End Using

LEANDROVIP 09/08/2015 17:15:47
#449766
Resposta escolhida
Boa tarde!
Tente conforme abaixo... Alterei a instrução SQL, e retirei a linha cmd.ExecuteNonQuery()

 
Private Sub salvalancamentos()
Using con As MySqlConnection = ConexaoComMysql()

Dim cmd As MySqlCommand
con.Open()
cmd = New MySqlCommand([Ô]INSERT INTO Teste (Danfe, Valor, RespFiscal) VALUES (@Danfe, @Valor, @RespFiscal); SELECT LAST_INSERT_ID() as idRetorno;[Ô], con)
cmd.Parameters.Clear()
cmd.Parameters.Add([Ô]@Danfe[Ô], MySqlDbType.VarChar, 44).Value = TextBoxChave.Text
cmd.Parameters.Add([Ô]@Valor[Ô], MySqlDbType.Double).Value = TxtValorTotal.Text
cmd.Parameters.Add([Ô]@RespFiscal[Ô], MySqlDbType.VarChar).Value = TextBox6.Text
Try
Dim cmd_result As Integer = CInt(cmd.ExecuteScalar())
MsgBox(cmd_result)
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
con.Close()
End Using
End Sub


[]'s
W8.LISBOA 09/08/2015 18:59:51
#449768
Citação:

:
Boa tarde!
Tente conforme abaixo... Alterei a instrução SQL, e retirei a linha cmd.ExecuteNonQuery()

 
Private Sub salvalancamentos()
Using con As MySqlConnection = ConexaoComMysql()

Dim cmd As MySqlCommand
con.Open()
cmd = New MySqlCommand([Ô]INSERT INTO Teste (Danfe, Valor, RespFiscal) VALUES (@Danfe, @Valor, @RespFiscal); SELECT LAST_INSERT_ID() as idRetorno;[Ô], con)
cmd.Parameters.Clear()
cmd.Parameters.Add([Ô]@Danfe[Ô], MySqlDbType.VarChar, 44).Value = TextBoxChave.Text
cmd.Parameters.Add([Ô]@Valor[Ô], MySqlDbType.Double).Value = TxtValorTotal.Text
cmd.Parameters.Add([Ô]@RespFiscal[Ô], MySqlDbType.VarChar).Value = TextBox6.Text
Try
Dim cmd_result As Integer = CInt(cmd.ExecuteScalar())
MsgBox(cmd_result)
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
con.Close()
End Using
End Sub


[]'s




Valeu...Perfeito!

Tópico encerrado , respostas não são mais permitidas