• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Luis Marques

[Resolvido] Erro a apagar dados

6 mensagens neste tópico

Pessoal dá-me o seguinte erro quando clico sobre o registo que quero apagar, já usei o mesmo código noutro programa e funcionou bem, mas agora neste programa dá erro.

ERRO: Conversion from string "delete from clientes where id_cl" to type 'Double' is not valid

Deixo aqui o código que tenho:

 Private Sub DataGridView1_CellDoubleClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellDoubleClick

        id_cliente = DataGridView1.Rows(e.RowIndex).Cells(0).Value

        Try
            MsgBox("1 registo eliminado", MsgBoxStyle.Information)
            Dim msg = MsgBox(" Deseja continuar?", MsgBoxStyle.YesNo)

            If msg = MsgBoxResult.No Then
                Me.Close()
                Form1.Show()

            End If



            Dim lm As String = "delete from clientes where id_cliente = " + id_cliente

            ' Inicia uma ligação à bse de dados
            Using connection As New OleDbConnection(pap.My.Settings.ligacaoBD)

                ' Define o comando e os parâmetros

                Dim command As New OleDbCommand(lm, connection)


                ' Abre a ligação e insere o registo
                connection.Open()
                Dim x As Integer = command.ExecuteNonQuery()
                If x <> 1 Then
                    Throw New ArgumentException("Não foi possível inserir o registo na base de dados!")
                End If

            End Using

        Catch ex As Exception
            MessageBox.Show(ex.Message, My.Application.Info.Title, MessageBoxButtons.OK, MessageBoxIcon.Error)
        End Try

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O id_cliente não deve estar correcto. Verifica se é mesmo o número que queres.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

A concatenação em VB é com & e não com +. O Vb nesse caso está a considerar que queres somar uma string (a query) com o id de cliente. :P

Assim deve funcionar:

Dim lm As String = "delete from clientes where id_cliente = " & id_cliente

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se quiseres usar o + podes fazer da seguinte maneira:

Dim lm As String = "delete from clientes where id_cliente = " + id_cliente.ToString

O & também é usado para fazer operações de lógica...

0

Partilhar esta mensagem


Link 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