Inquiridor
ProgressBar para mostrar o progresso do recebimento de dados.

Pergunta
-
Olá amigos!
Eu quero sincronizar um progressBar com os dados que eu recebo no Datagridview, e não sei como fazer.
Esse é o modo que estou me conectando ao banco.public CamadaDados() { string conexao = @"Data Source=.\sqlexpress;Initial Catalog=CUSTOS;Integrated Security=True"; conn = new SqlConnection(conexao); } /// <summary> /// /// </summary> /// <returns> retorna os dados da table no gridview</returns> public DataTable getRegistro () { DataTable dt = new DataTable(); try { conn.Open(); // abre conexão SqlCommand comando = new SqlCommand("USP_TODOS_RESULTADOS",conn); // cria um novo comando sql, com o comando a ser executado comando.CommandText = "USP_TODOS_RESULTADOS"; // comando a ser executado comando.CommandType = System.Data.CommandType.StoredProcedure; // indica o tipo do comando nesse caso é stored Procedure SqlDataAdapter da = new SqlDataAdapter(comando); da.Fill(dt); //Adiciona ou atualiza as linhas do DataSet return dt; } catch (Exception ex) { throw ex; } finally { conn.Close(); } }
E aqui é quando eu chamo o método no botão:
private void button1_Click(object sender, EventArgs e) { try { dataGridView1.DataSource = camadaDB.getRegistro(); } catch (Exception ex) { MessageBox.Show("Erro ao acessar base de dados" + ex.Message); } }
Todas as Respostas
-
Italo, bom dia
como você está querendo imcrementar o contador do ProgressBar de uma outra classe, você terá de fazer isto através do BackgroundWorker. É uma operação um pouco complexa
veja estes links
http://social.msdn.microsoft.com/Forums/en/csharpgeneral/thread/7d04cc58-d0cc-41a5-8d0e-6c4e051a96e9
http://msdn.microsoft.com/en-au/library/system.componentmodel.backgroundworker.aspx
Olavo Oliveira Neto
http://olavooneto.wordpress.com
Twitter @Olavooneto
Facebook Olavo Neto
Linkedin Olavo Neto
Se for útil marque como resposta e faça um Developer feliz :) -
-
o BackgroundWorker seria o modo mais simples por sincronizar tudo automaticamente sem você estressar com dead locks... mas outro modo é através de threads(inicialmente seria mais complexo que backgroundworker mas no teu caso que é só uma progress bar da na mesma)
http://www.macoratti.net/10/09/c_thd1.htm veja esse link
basicamente terá que adapatar a progress bar com um método que receberá um valor por parametro, dizendo o quanto deverá crescer a barra... então você poderia paginar os dados que recebe do datagridview, ou seja, buscá-los de 10 em 10 por exemplo, a cada 10 que você busca manda um valor pra aumentar a barra da progress bar... espero ter ajudado :D