Ir para o conteúdo

Progressbars no Datagrid

As progressbars são uma grande ajuda, principalmente para os beginners, para uma perspectiva sobre o que se está a passar num determinado jogo, numa determinada aplicação. Em todos os sítios encontramos barras de progresso, elas determinam o tempo de uma tarefa até estar concluída.

Para quem se inicia no "mundo" das barras de progresso, deixo este link: ProgressBar - Barras de progresso desmistificadas para uma melhor percepção do conceito.

Controlos Necessários

  1. DataGridView
  2. ProgressBar

Códigos Necessários

        'Inicialização com a base de dados e respectiva selecção de dados;
        Dim BaseDados As String = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Application.StartupPath & "\BD.mdb"
        Dim Query As String = "SELECT * FROM Tabela"
        Dim Connection As New OleDbConnection(BaseDados)
        Dim command As New OleDbCommand(Query , Connection)

        ' Abrimos a conexão;
        Connection.Open()

        ' Executamos o comando atribuindo-lhe um OleDbDataReader onde irá armazenar os resultados; 
        Dim DataReader As OleDbDataReader = command.ExecuteReader

        ' Definimos os valores da progressbar inicialmente;
        ProgressBar1.Value = 0
        ProgressBar1.Maximum = 0

        ' Variável para receber e adicionar os valores da progressbar;
        Dim Int As Integer = 0

        ' Enquanto a selecção dos dados não estiver concluída..
        While DataReader.Read

        ' Incrementamos à varíavel um valor;
            Int += 1

            ' Criamos um DataSet, que significa uma representação da informação em memória;
            Dim DataSet As New DataSet
            ' Criamos um DataAdapter, que servirá para actualizar o DataSet;
            Dim DataAdapter As New OleDbDataAdapter(Query, Connection)

            ' Incutimos a informação da Tabela no DataSet;
            DataAdapter.Fill(DataSet, "Tabela")
            ' No DataSource da DataGridView é onde vamos receber toda a informação proveniente do DataSet, 
            ' onde o mesmo irá automaticamente preencher a DataGridView com as informações da Tabela;            
            Me.DataGridView1.DataSource = DataSet.Tables("Tabela")

            ' Definimos que o valor máximo da progressbar é igual à variável inicialmente imposta por nós;
            ProgressBar1.Maximum = Int
            ' O PerformStep() serve para a progressbar andar "para a frente" de modo a auto completar-se;
            ProgressBar1.PerformStep()
            ' Refrescamos a progressbar;
            ProgressBar1.Refresh()

        End While

        ' Fecha a ligação e limpa as variáveis.
            Connection.Close()
            Connection = Nothing
            command = Nothing

Importante: No código foi usado a base de dados Microsoft Access 2003 (.mdb), caso a base de dados seja Microsoft Access 2007 deve-se utilizar a extensão (.accdb).

Importante: Antes do Public Class (no código-fonte) devemos incutir o imports System.Data.OleDb.