Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Luisveiga18

[Resolvido] Problema com o atualizar

Mensagens Recomendadas

Luisveiga18

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 por Caça
GeSHi

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
NunoDinis

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 por NunoDinis
  • Voto 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

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

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

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

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.