Luisveiga18 0 Denunciar mensagem Publicado 18 de Fevereiro de 2013 (editado) Estou a usar o seguinte código para atualiza dados de uma base de dados a partir do VB: Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Dim ConnectionString As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=C:\Users\Luís Sebastião\Desktop\PAP 2012-2013\Resgest\ResgestDB.accdb") Dim query As String = "UPDATE Clientes SET [iDCliente] = @IDCliente, [Morada] = @Morada, [CodigoPostal] = @CodigoPostal, [Localidade] = @Localidade, [Email] = @Email, [Telefone] = @Telefone WHERE Nome = @Nome" Dim command As New OleDbCommand(query, ConnectionString) command.Parameters.Add("@IDCliente", OleDbType.Integer).Value = LabelCliente.Text command.Parameters.Add("@Nome", OleDbType.VarChar).Value = NomeTB.Text command.Parameters.Add("@Morada", OleDbType.VarChar).Value = MoradaTB.Text command.Parameters.Add("@CodigoPostal", OleDbType.VarChar).Value = CodigoPostalTB.Text command.Parameters.Add("@Localidade", OleDbType.VarChar).Value = LocalidadeTB.Text command.Parameters.Add("@Email", OleDbType.VarChar).Value = EmailTB.Text command.Parameters.Add("@Telefone", OleDbType.VarChar).Value = TelefoneTB.Text ConnectionString.Open() Dim x As Integer = command.ExecuteNonQuery() If x < 1 Then MessageBox.Show("Erro ao atualizar", My.Application.Info.Title, MessageBoxButtons.OK, MessageBoxIcon.Error) Else MessageBox.Show("Actualizado com sucesso!", My.Application.Info.Title, MessageBoxButtons.OK, MessageBoxIcon.Information) LocalidadeTB.Text = "" NomeTB.Text = "" MoradaTB.Text = "" CodigoPostalTB.Text = "" EmailTB.Text = "" TelefoneTB.Text = "" End If ConnectionString.Close() command = Nothing End Sub Como poderão verificar estou a utilizar uma procurar personalizada, neste caso a partir do nome do cliente (que não é a chave primaria). O problema é que esta sempre a dar a mensagem do "Erro a Atualizar", posso vos garantir que todos os dados que tentei atualizar são validos, mas infelizmente depois de vária tentativas não o consigo fazer passar daqui. Editado 18 de Fevereiro de 2013 por Caça GeSHi Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
NunoDinis 40 Denunciar mensagem Publicado 18 de Fevereiro de 2013 (editado) Para vermos onde está o erro utiliza um try catch. Try 'rotina de inserção Catch ex As Exception MsgBox("erro" & vbCrLf & ex.Message) End Try Editado 18 de Fevereiro de 2013 por NunoDinis 1 Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro. ndsotware.org Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
Caça 24 Denunciar mensagem Publicado 18 de Fevereiro de 2013 Para vermos onde está o erro utiliza um try catch. Try 'rotina de inserção Catch ex As Exception MsgBox("erro" & vbCrLf & ex.Message) End Try Aquela mensagem é ele que está a mandar Adiciona os parâmetros pela mesma ordem que estão na query, ou seja, o Nome, deve vir em ultimo. Pedro Martins Não respondo a duvidas por PM Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
Luisveiga18 0 Denunciar mensagem Publicado 19 de Fevereiro de 2013 Para vermos onde está o erro utiliza um try catch. Try 'rotina de inserção Catch ex As Exception MsgBox("erro" & vbCrLf & ex.Message) End Try Não consigui utilizar este try. Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
NunoDinis 40 Denunciar mensagem Publicado 19 de Fevereiro de 2013 Adiciona os parâmetros pela mesma ordem que estão na query, ou seja, o Nome, deve vir em ultimo. O @caça disse isto, experimenta. Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro. ndsotware.org Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
Luisveiga18 0 Denunciar mensagem Publicado 19 de Fevereiro de 2013 O @caça disse isto, experimenta. Tentei e mesmo assim não funciona. Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites