Luisveiga18 Posted February 18, 2013 at 05:08 PM Report #496013 Posted February 18, 2013 at 05:08 PM (edited) 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. Edited February 18, 2013 at 06:20 PM by Caça GeSHi
NunoDinis Posted February 18, 2013 at 05:12 PM Report #496016 Posted February 18, 2013 at 05:12 PM (edited) 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 Edited February 18, 2013 at 05:12 PM by NunoDinis 1 Report Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro. ndsotware.org
Caça Posted February 18, 2013 at 06:23 PM Report #496029 Posted February 18, 2013 at 06:23 PM 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
Luisveiga18 Posted February 19, 2013 at 03:19 PM Author Report #496161 Posted February 19, 2013 at 03:19 PM 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.
NunoDinis Posted February 19, 2013 at 03:29 PM Report #496166 Posted February 19, 2013 at 03:29 PM 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
Luisveiga18 Posted February 19, 2013 at 04:10 PM Author Report #496173 Posted February 19, 2013 at 04:10 PM O @caça disse isto, experimenta. Tentei e mesmo assim não funciona.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now