none
Atualizar listview em tempo de execução com banco de dados RRS feed

  • Pergunta

  • Olá, eu gostaria de saber como se atualiza um listview após um dado ser alterado no banco de dados em tempo de execução.

    Já utilizei o método Refresh(), mas não deu certo.

    quarta-feira, 9 de janeiro de 2013 21:18

Respostas

  • Galera eu consegui! A solução foi adicionar a seguinte linha logo no início do método:

    listView.Items.Clear();

    Eu coloquei antes de instanciar a classe BancoDeDados.

    Muito obrigado a vocês! Continuem ajudando outras pessoas! Valeu mesmo pela atenção!

    sexta-feira, 11 de janeiro de 2013 01:23

Todas as Respostas

  • Como você esta carregando ele?

    quarta-feira, 9 de janeiro de 2013 21:44
  • Boa Noite!

    Depende de como você esta usando para pegar os dados do banco.

    Mas o Refresh, somente irá recarregar a lista mas não acontecerá nada se você não usar um método para carregar o banco novamente...

    Qualquer duvida nos mostre seu código...

    • Sugerido como Resposta PachecoDT quarta-feira, 9 de janeiro de 2013 23:09
    quarta-feira, 9 de janeiro de 2013 23:09
  • Primeiramente quero agradecer pela atenção de vocês!

    Aqui está a forma como eu estou carregando o ListView. O que eu quero é quando o usuário clicar em atualizar, ele no mesmo instante recarregue já com os novos dados!

    public void preencherListView() 
            {
                ///Esta classe é onde se encontra todos meus comandos com 
                ///banco de dados. Ex.: Insert, Select, Delete...
                BancoDeDados bancoDados = new BancoDeDados();
    
                ///Aqui eu declaro uma lista para adicionar os dados
                ///do banco e depois colocá-la no ListView
                List<BancoDeDados.Cadastro> lstCadastro = new List<BancoDeDados.Cadastro>();
    
                ///Aqui eu executo o comando de 'select * from table' 
                ///através do método consultar que está na minha classe
                ///Banco de dados
                lstCadastro = bancoDados.Consultar();
    
    
                ///Aqui tem um 'foreach' para carregar o 'listView'
                foreach (var itemLista in lstCadastro)
                {
                    ///Aqui eu instancio um 'ListViewItem' para cada 
                    ///Dado que vem do banco e assim adicionar na lista.
                    ///Na instancia eu já passo logo o primeiro item que é
                    ///o código.
                    ListViewItem objListViewItem = new ListViewItem(itemLista.cod.ToString());
    
                    ///Aqui eu adiciono um subItem ao 'listView'
                    objListViewItem.SubItems.Add(itemLista.nome.ToString());
    
                    ///Aqui eu adiciono TUDO ao ListView que está sendo 
                    ///mostrado na tela do usuário.
                    listView.Items.Add(objListViewItem);
                
                }//Fim do Foreach
    
            }//Fim do método 'Preencher ListView'

    Este método está sendo chamado na ação: form_Load
    sexta-feira, 11 de janeiro de 2013 00:50
  • Galera eu consegui! A solução foi adicionar a seguinte linha logo no início do método:

    listView.Items.Clear();

    Eu coloquei antes de instanciar a classe BancoDeDados.

    Muito obrigado a vocês! Continuem ajudando outras pessoas! Valeu mesmo pela atenção!

    sexta-feira, 11 de janeiro de 2013 01:23
  • Boa Noite George.

    Certo você popula seu Listview manualmente dentro do foreach. então refresh não irá trazer os dados novos, visto que já foi populado no inicio.

    Que tal se Você no botão gravar apos inserir os dados ou atualizar, você usar um clear() na sua lista e também no listview então depois você pode chamar esse método novamente, assim ele irá preencher tudo novamente.. trazendo do banco os dados inseridos.

    o select você pode ordenar trazer da maneira que desejar..

    Abraço!


    • Sugerido como Resposta PachecoDT sexta-feira, 11 de janeiro de 2013 01:31
    • Editado PachecoDT sexta-feira, 11 de janeiro de 2013 01:32
    sexta-feira, 11 de janeiro de 2013 01:31