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

set#1

Erro no codigo para apagar dados na BD

10 mensagens neste tópico

Alo tudo bem!

Tenho um probleminha. Tenho o codigo abaixo num botao "Apagar" que deve apagar um Paciente  com o NID X numa BD (Server 2005) so que tenho o seguinte erro: Expression expected (sublinhado no primeiro &).

Linha:

pacientesDS = pacientesDTA.DeletePaciente(& Trim(txtNID.Text.ToString) &)

DeletePaciente

DELETE FROM t_paciente
WHERE     (nid = @Param1)

O codigo completo:

'Com problemas ainda
Private Sub btApagar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btApagar.Click

'Me tinham sugerido este mas isto so apaga no form e nao na BD
        'Me.T_pacienteBindingSource.RemoveCurrent()
        'Me.Update()

        Dim pacientesDS As BD_TL2009DataSet.t_pacienteDataTable
        Dim pacientesDTA As New BD_TL2009DataSetTableAdapters.t_pacienteTableAdapter
        pacientesDTA = New BD_TL2009DataSetTableAdapters.t_pacienteTableAdapter
        'Dim paciente As BD_TL2009DataSet.t_pacienteRow

        If MsgBox("Tem a certeza que deseja apagar o registo: " & Trim(txtNID.Text) & " ?", MessageBoxButtons.YesNo, "Confime: Apagar Registo") = Windows.Forms.DialogResult.Yes Then
            pacientesDS = pacientesDTA.DeletePaciente(& Trim(txtNID.Text.ToString)&)
            MsgBox("Registo apagado com sucesso!", "Apagou Dados", MessageBoxButtons.OK)
        Else
            MsgBox("Registo nao apagado!", "Cancelou", MessageBoxButtons.OK)
        End If

    End Sub

Obrigado pela atencao

(((Peace&Love)))

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Experimenta assim:

pacientesDS = pacientesDTA.DeletePaciente(txtNID.Text.ToString.Trim())

O método pacientesDTA.DeletePaciente() devolve alguma coisa ? Caso contrário basta fazer:

pacientesDTA.DeletePaciente(txtNID.Text.ToString.Trim())

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Jpaulino, experimentei este:

pacientesDTA.DeletePaciente(txtNID.Text.ToString.Trim())

Clico no botao apagar:

1o - Se esta a visualizar o paciente 001, pergunta na msgbox se quero apagar o paciente 002 (em vez de 001) e tanto Yes como No apaga o paciente anterior, o 001 e assim sucessivamente!

2o - Nao esta a apagar os dados na BD

:-[

Usando

pacientesDS = pacientesDTA.DeletePaciente(txtNID.Text.ToString.Trim())

Da este erro: Value of type 'Integer' cannot be converted to 'TL2009_SGP.BD_TL2009DataSet.t_pacienteDataTable'.

O DeletePaciente me retorna um inteiro quando experimento e coloco o NID de qualquer paciente.

:wallbash:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tenho um BD_TL2009DataSet onde ta la o t_paciente DataTable

Nele tenho o t_pacienteTableAdapter onde tenho varias funções e uma delas 'e o DeletePaciente

DELETE FROM t_paciente
WHERE     (nid = @Param1)

O pacientesDTA foi declarado:

Dim pacientesDTA As New BD_TL2009DataSetTableAdapters.t_pacienteTableAdapter
pacientesDTA = New BD_TL2009DataSetTableAdapters.t_pacienteTableAdapter

Espero ter feito perceber!!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

DELETE FROM t_paciente
WHERE     (nid = @Param1)

Deve apagar na tabela t_paciente o paciente com o NID - txtNID

No querybuilder ja executei e coloco um NID e ele apaga. Da pra perceber...??

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sorry jpaulino, eu 'e que falhei aqui:

'Me.T_pacienteBindingSource.RemoveCurrent()
'Me.Update()

Comentei no post mas no programa nao estava comentado.

Ja esta a funcionar

B)

Obrigado

(((Peace&Love)))

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Agora, ele apaga mas ainda me mostra o paciente, so depois de sair e voltar ao form 'e que actualiza.

Como faco para ele depois actualizar para os dados actuas logo apos apagar.

E como faco para ele mostrar num label o numero total dos pacientes na t_paciente.

Mas mostra onde ?

Esta questão já está resolvida, deves marcar como resolvida (Topic Solved) e criar uma nova questão :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ja esta marcado.

Esse outro ponto comecei em outro topico:

Reload dados no form depois de apagar

Obrigado

(((Peace&Love)))

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