none
Atualizar DataGrid depois que Fechar o Form RRS feed

  • Pergunta

  • Olá pessoal boa tarde. Gostaria se possível de uma ajuda na atualização do meu datagrid que está em outro form. O problema é o seguinte, tenho o FormCadastrarPessoas que está com o datagridEndereco listando os dados, gostaria de atualizar os dados do datagridEndereco do FormCadastrarPessoas , depois que eu fizer qualquer alteração no FormCadastrarEndereco. Já tentei este modelo mas não dar certo.

      Private Sub cadastrarEnderecoForm_FormClosing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing
    
            'Primeira Forma
            cadastrarClienteForm._enderecoID = IDPes
            cadastrarClienteForm.EnderecoDataGridView_Cli.DataSource = Nothing
            cadastrarClienteForm.AtualizaEnderecoID()
            cadastrarClienteForm.Show()
    
            'Segunda Forma
            frmCli = New cadastrarClienteForm()
            frmCli.EnderecoDataGridView_Cli.DataSource = Nothing
            frmCli.AtualizaEnderecoID()
            frmCli.Show()
    
            'Terceira Forma
            frmCli.EnderecoDataGridView_Cli.DataSource = Nothing
            cadastrarClienteForm.RefreshEnderecoGRID()
            frmCli.Show()
    
        End Sub

    Já tentei fazer desse jeito e nada pessoal. Criei até outra outra função para atualizar novamente mas mesmo não consigo atualizar os dados depois que fechar o formulário de Cadastro de Enderecos. Se Alguém poder me ajudar ficarei muito agradecido. Obrigado

    • Editado Thyago Analista terça-feira, 22 de janeiro de 2013 15:55 Alteração code
    terça-feira, 22 de janeiro de 2013 15:52

Respostas

Todas as Respostas

  • Já tentou tirar o datasource do datagrid e colocar novamente?
    terça-feira, 22 de janeiro de 2013 16:55
  • como fazer? Por que estou setando ele como Nothing... e mesmo assim não atualizar.. Como fazer o este procedimento?
    terça-feira, 22 de janeiro de 2013 17:08
  • Eu fiz assim

                DGretorno.DataSource = ""
                SqlConCQ.Open()
                DGretorno.DataSource = BSretorno
                

    terça-feira, 22 de janeiro de 2013 18:08
  • O problema é que minha fonte de Dados está todo em Sistema em Camada.

    Aqui o procedimento todo que uso para listar os dados no grid:

    'Procedimento no Form de Cadastrar Pessoas
     Public Sub ListaEnderecoID()
    
            Dim dEndereco As New EnderecoDAL()
    
            Try
    
                Dim ds As DataSet = dEndereco.EnderecosID(_enderecoID) 'Chama o método TodosContatos que retorna um DataSet
                Dim dt As DataTable = ds.Tables(0) 'Pega o DataTable do DataSet retornado.
                ' cria uma visao da visao padrao para a tabela
                dv = dt.DefaultView
    
                'ds = customers.buscaCustomers()
                If ds.Tables(0).Rows.Count > 0 Then
                    '[Nome/RazaoSocial]
                    With dv
                        .AllowNew = False
                        .AllowDelete = False
                        .AllowEdit = False
                        .Sort = " Nome "
                    End With
    
                    bs.Filter = String.Empty
                    EnderecoDataGridView_Cli.DataSource = Nothing
                    bs.DataSource = Nothing
                    EnderecoDataGridView_Cli.Refresh()
                    EnderecoDataGridView_Cli.DataSource = dv
                    bs.DataSource = ds
                    bs.DataMember = ds.Tables(0).TableName
                    EnderecoDataGridView_Cli.DataSource = bs
                    'cm = CType(dgvPessoas.BindingContext(dv), CurrencyManager)
                    'MessageBox.Show(objPes.Status)
                    'lblContador.Text = ds.Tables(0).Rows.Count.ToString + " Registros"
                End If
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            Finally
                dEndereco = Nothing
            End Try
    
        End Sub
    
    
    'Procedimento Usando a DAL Enderecos
    
       Public Function EnderecosID(ByVal PesID As Integer) As DataSet
    
                _strSQL = Nothing
                _dset = Nothing
    
                Try
                    _sqlcon = New SqlClient.SqlConnection(_conStr)
                    _sqlcon.Open()
    
                    _sqlcom = New SqlClient.SqlCommand()
    
                    _strSQL = " SELECT E.Pes_End_Id, E.Pes_End_TipoId,E.Pes_End_Pais, E.Pes_End_OutrosPrinc,E.Pes_End_Complemento," & _
                                      "E.Pes_End_Bairro, E.Pes_End_PontRef, E.Pes_End_Numero,E.Pes_End_CEP,T.Pes_TipEnd_Desc AS Nome," & _
                                      "E.Pes_End_Logradouro As Logradouro,E.Pes_End_Cidade As Cidade, E.Pes_End_UF AS UF " & _
                                      "FROM Pessoa P INNER JOIN Pessoa_Endereco E ON P.Pes_Id = E.Pes_End_PesId " & _
                                      "LEFT JOIN Pessoa_Tipo_Endereco T ON T.Pes_TipEnd_Id = E.Pes_End_TipoId  " & _
                                      "Where E.Pes_End_PesId = " & PesID & " "
    
                    With _sqlcom
                        .Connection = _sqlcon
    
                        .CommandType = CommandType.Text
    
                        .CommandText = _strSQL
    
                    End With
    
                    _sqldap = New SqlClient.SqlDataAdapter(_sqlcom)
                    _dset = New DataSet()
                    _sqldap.Fill(_dset)
                Catch ex As Exception
                    _dset = Nothing
                    Throw ex
                Finally
                    liberaTodosObjetos()
                End Try
    
                Return _dset
    
            End Function

    Já tenteis atribuir 'Nothing', mas não dar certo. Só consigo atualizar os dados utilizando evento do activate do Form Cadastro Pessoas. Mas percebir que toda hora o software fica atualizado causando perda de desempenho quando está ativo...
    terça-feira, 22 de janeiro de 2013 18:45
  • Queria ver alguma forma para eu atualizar o grid enderecos depois que eu fechar o form de cadastrar Enderecos
    terça-feira, 22 de janeiro de 2013 18:45
  • Achei a solução para o que eu quero ..... Events e Delegates

    http://www.devmedia.com.br/events-delegates-e-anonymous-methods-em-net/25009

    vlw galera pela a ajuda..

    • Marcado como Resposta Thyago Analista quarta-feira, 23 de janeiro de 2013 15:38
    quarta-feira, 23 de janeiro de 2013 15:38