none
Como atualizar automaticamente uma GridViwe RRS feed

  • Pergunta

  • Boa tarde,

    Estou criando um programa que guarda em banco informações de produtos que estão em estoque, só que estou tendo problemas na atualização da GridViwe, no metodo load da pagina assinei o  "GridViwe.Source" que recebe o valor do método tabela de "banco.mostrar". Ele funciona normalmente se for atualizar manualmente, mas eu não consigo fazer com que ele atualize automaticamente.

    Classe:  Banco_acoes

    public DataTable mostrar()
            {
                this.command_x = "SELECT * FROM catalogo";
                MySqlConnection conexao = new MySqlConnection(this.endereco_x);
                conexao.Open();
                MySqlCommand command = new MySqlCommand(this.command_x, conexao);
                MySqlDataReader reader = command.ExecuteReader();
                DataTable dt = new DataTable();
                dt.Load(reader);
                return dt;
            }

    Na load da pagina:

     private void Form1_Load(object sender, EventArgs e)
            {
                    dataGridView1.DataSource =banco.mostrar();
    
            }

    Peço a ajuda de vocês!

    domingo, 17 de junho de 2012 13:36

Todas as Respostas

  • Olá,

    No caso vc precisa criar um Timer no seu formulário para que ele atualize diversas vezes o conteúdo do Grid.

    O evento Load do Form só é executado uma vez, quando o mesmo é aberto. Faça algo como:

            public Form1()
            {
                InitializeComponent();
    
                Timer timer = new Timer();
    
                // Uma atualização a cada 5 segundos...
                timer.Interval = 5000; 
    
                timer.Tick += new EventHandler(timer_Tick);
                timer.Start();
            }
    
            void timer_Tick(object sender, EventArgs e)
            {
                dataGridView1.DataSource =banco.mostrar();
            }

    No caso, o código acima irá até o banco de dados a cada 5 segundos e irá atualizar os dados do seu formulário. Para que ele atualize automaticamente é necessário este tipo de abordagem.

    []s!


    Fernando Henrique Inocêncio Borba Ferreira
    while(alive){ this.WriteCode(); }
    Blog: http://ferhenriquef.com/
    Twitter: @ferhenrique

    domingo, 17 de junho de 2012 14:27
    Moderador