set#1 Posted September 17, 2009 at 09:47 AM Report Share #287418 Posted September 17, 2009 at 09:47 AM No meu utimo topico estava com difuculdades de apagar dados na BD (Server 2005). Depois de resolvido tenho outro problema. O codigo 'e este: Private Sub btApagar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btApagar.Click 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 pacientesDTA.DeletePaciente(txtNID.Text.ToString.Trim()) MsgBox("Registo apagado com sucesso!", MessageBoxButtons.OK, "Apagou Dados") Else MsgBox("Registo nao apagado!", MessageBoxButtons.OK, "Cancelou") End If End Sub Quando ele apaga ainda me mostra o paciente apagado, 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 da t_paciente. Obrigado (((Peace&Love))) Link to comment Share on other sites More sharing options...
set#1 Posted September 18, 2009 at 06:59 AM Author Report Share #287570 Posted September 18, 2009 at 06:59 AM Para clarificar vou dar um exemplo: Se tenho na BD 10 pacientes no form me mostra todos certo. Se apago o pac 001 (usando o botão apagar) depois de apagar, navegando pelos pacientes, ele ainda 'e visivel no form. So depois de sair e voltar a entrar no form 'e que actualiza os dados. Desejo actualizar os dados logo após apagar o paciente. Obrigado (((Peace&Love))) Link to comment Share on other sites More sharing options...
set#1 Posted September 22, 2009 at 09:44 PM Author Report Share #288212 Posted September 22, 2009 at 09:44 PM Still waiting!! Alguem pra ajudar!!? Obrigado (((Peace&Love))) Link to comment Share on other sites More sharing options...
Pwyll Posted September 22, 2009 at 11:03 PM Report Share #288224 Posted September 22, 2009 at 11:03 PM Vejo que chamas um metodo para apagar o registo do table adapter, mas onde estas a fazer o reload do controlo que mostra os registos? Link to comment Share on other sites More sharing options...
set#1 Posted September 23, 2009 at 08:00 AM Author Report Share #288248 Posted September 23, 2009 at 08:00 AM Vejo que chamas um metodo para apagar o registo do table adapter, mas onde estas a fazer o reload do controlo que mostra os registos? O load dos dados 'e feito no form frmPaciente: Private Sub frmPaciente_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load frmLogin.Timer.Stop() Me.T_funcionarioTableAdapter.Fill(Me.BD_TL2009DataSet1.t_funcionario) Me.T_provenienciaTableAdapter.Fill(Me.BD_TL2009DataSet1.t_proveniencia) Me.T_nivelescolarTableAdapter.Fill(Me.BD_TL2009DataSet1.t_nivelescolar) Me.T_profissaoTableAdapter.Fill(Me.BD_TL2009DataSet1.t_profissao) Me.T_contactoTableAdapter.Fill(Me.BD_TL2009DataSet.t_contacto) Me.T_bairroTableAdapter.Fill(Me.BD_TL2009DataSet.t_bairro) Me.T_distritoTableAdapter.Fill(Me.BD_TL2009DataSet.t_distrito) Me.T_adultoTableAdapter.Fill(Me.BD_TL2009DataSet.t_adulto) Me.T_pacienteTableAdapter.Fill(Me.BD_TL2009DataSet.t_paciente) Me.btGravar.Enabled = False 'Carrega dado do dataset t_contacto: GetContactoAdulto no Pessoa de referencia Dim pacientesAdapter As New BD_TL2009DataSetTableAdapters.t_contactoTableAdapter pacientesAdapter = New BD_TL2009DataSetTableAdapters.t_contactoTableAdapter Dim pacientes As BD_TL2009DataSet.t_contactoDataTable Dim paciente As BD_TL2009DataSet.t_contactoRow pacientes = pacientesAdapter.GetContactoAdulto paciente = pacientes.Item(0) Me.txtNomeRef.Text = paciente.nome Me.txtApelidoRef.Text = paciente.apelido Me.txtContactoRef.TabIndex = paciente.telefone End Sub Aqui neste form tenho o botao apagar. Eu pretendo depois de apagar ele fazer um Refresh dos dados e apresentar os que ficaram (sem aquele que acabo de apagar, que ate agora me aparece). Obrigado Link to comment Share on other sites More sharing options...
lufinima Posted September 23, 2009 at 01:47 PM Report Share #288291 Posted September 23, 2009 at 01:47 PM Como tens a actualização dos dados no evento frmPaciente_Load ele só os actualiza quando esse evento ocorre, logo quando o formulário é inicializado, solução simples é criar um procedimento ou função para fazer a actualização dos dados, não deve ser solução única e nem deve ser muito optimizada mas deve funcionar: Private Sub frmPaciente_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load frmLogin.Timer.Stop() Me.btGravar.Enabled = False CarregarDados() End Sub Private Sub CarregarDados() Me.T_funcionarioTableAdapter.Fill(Me.BD_TL2009DataSet1.t_funcionario) Me.T_provenienciaTableAdapter.Fill(Me.BD_TL2009DataSet1.t_proveniencia) Me.T_nivelescolarTableAdapter.Fill(Me.BD_TL2009DataSet1.t_nivelescolar) Me.T_profissaoTableAdapter.Fill(Me.BD_TL2009DataSet1.t_profissao) Me.T_contactoTableAdapter.Fill(Me.BD_TL2009DataSet.t_contacto) Me.T_bairroTableAdapter.Fill(Me.BD_TL2009DataSet.t_bairro) Me.T_distritoTableAdapter.Fill(Me.BD_TL2009DataSet.t_distrito) Me.T_adultoTableAdapter.Fill(Me.BD_TL2009DataSet.t_adulto) Me.T_pacienteTableAdapter.Fill(Me.BD_TL2009DataSet.t_paciente) 'Carrega dado do dataset t_contacto: GetContactoAdulto no Pessoa de referencia Dim pacientesAdapter As New BD_TL2009DataSetTableAdapters.t_contactoTableAdapter pacientesAdapter = New BD_TL2009DataSetTableAdapters.t_contactoTableAdapter Dim pacientes As BD_TL2009DataSet.t_contactoDataTable Dim paciente As BD_TL2009DataSet.t_contactoRow pacientes = pacientesAdapter.GetContactoAdulto paciente = pacientes.Item(0) Me.txtNomeRef.Text = paciente.nome Me.txtApelidoRef.Text = paciente.apelido Me.txtContactoRef.TabIndex = paciente.telefone End Sub Private Sub btApagar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btApagar.Click 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 pacientesDTA.DeletePaciente(txtNID.Text.ToString.Trim()) MsgBox("Registo apagado com sucesso!", MessageBoxButtons.OK, "Apagou Dados") Else MsgBox("Registo nao apagado!", MessageBoxButtons.OK, "Cancelou") End If CarregarDados() End Sub Link to comment Share on other sites More sharing options...
set#1 Posted September 23, 2009 at 02:06 PM Author Report Share #288296 Posted September 23, 2009 at 02:06 PM Optimo!! Funcionou exactamente como eu queria. Obrigado 🙂 (((Peace&Love))) Link to comment Share on other sites More sharing options...
lufinima Posted September 24, 2009 at 05:33 PM Report Share #288492 Posted September 24, 2009 at 05:33 PM Ainda bem que ajudei a resolver o teu problema. Qualquer dúvida é só postar. Link to comment Share on other sites More sharing options...
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