none
Utilizando o Progressbar com sql??? RRS feed

  • Pergunta

  • Bom dia pessoal, é o seguinte, eu estou salvando algumas informações direto em um servidor externo, eu junto algumas informações e conecto no servidor e executo todas de uma unica vez, umas 40, 50 instruções SQL do tipo, insert, update e delete, elas demoram em média, de 5 à 15 segundos, gostaria de colocar um progressbar pra deixar o cliente ciente de que está em acontecendo alguma coisa, como eu posso fazer isso?????

    valeu.
    sexta-feira, 4 de abril de 2008 11:36

Respostas

  • Adriano,

    Insira um ProgressBar no formulário e quando for utiliza-lo você coloca na propriedade VALUE o valor do "estagio" que está teu processo.

    Abre um projeto novo e no formulário da uma estudada nele.

    Faz algo assim no FORM_LOAD

    for(int i = 0; i < 100; i++)
    {
    ProgressBar1.Value = i;
    }

    Faz um step-by-step só pra você entender o funcionamento.

    No ProgressBar você tem diversos recursos para configurar ele, um dele é o MAXIMUN que é o Valor maximo da propriedade VALUE. Quando VALUE for igual a MAXIMUN o ProgressBar será totalmente preenchido.

    Se MAXIMUN for 100 e Value você colocar 50, metade do ProgressBar estará preenchido.

    Você pode mudar o valor de Maximun para o valor que desejar.

    Qualquer dúvida posta aê!!!


    []´s
    sexta-feira, 4 de abril de 2008 18:40
  •  

    Adriano,

     

    Mas se você já sabe quantas entradas tem só é preciso fazer o seguinte:

     

    ProgressBar1.Maximum = dtp.Rows.Count;

    ProgressBar1.Minimum = 0;

    ProgressBar1.Step = 1;

     

    E depois no loop é só colocar ProgressBar1.PerformStep() para actualizar a barra

    sexta-feira, 4 de abril de 2008 18:44

Todas as Respostas

  • Oi,

     

    Podes mostrar o teu código?

     

    Se não sabes o tempo que pode levar podes colocar a progressbar com marquee. Assim está sempre em movimento até terminar o ciclo.

    sexta-feira, 4 de abril de 2008 14:06
  • ListaDePendencias lista = new ListaDePendencias();
    DataTable dtp = new DataTable ();
                    dtp = lista.TodasPendencias();
                    for (int i = 0; i < dtp.Rows.Count; i++)
                    {
                        aqui eu preencho meu objeto.
    aqui eu salvo o registro = "i";
                        
                     }

    eu busco quais são as pendencias para ser enviadas para o site, dai eu faço um for e vou enviando registro por registro, eu gostaria de saber como eu posso dar algum tipo de retorno pro usuario,  pra ele saber que estou enviando os dados, qualquer coisa que vai tendo progresso, seria bom utilizar o progressbar mesmo...só pro usuario ver que o programa está executando a função e não parado...

    valeu.
    sexta-feira, 4 de abril de 2008 14:15
  • Adriano,

    O que você quer não seria uma porcentagem das tarefas concluídas?
    Tipo:
    Total = (O_Que_Ja_Concluiu / Total_De_Pendencias) * 100

    O_Que_Ja_Concluiu é o valor de i do For e o Total_De_Pendenciaseria o dtp.Rows.Count.
    Com o resultado tu do total tu coloca na propriedade Value do ProgressBar. Você deve também definir o Maximum do ProgressBar (no caso como estamos trabalhando com porcentagem o Maximum deve ser 100)

    É isso?

    []´s
    sexta-feira, 4 de abril de 2008 16:42
  • Eu acredito que seja mais ou menos isso que eu tneho que fazer, mais vc pode detalhar mais? nunca usei o progressbar, estou tentando, mais esta dificil, como ele dispara???

    valeu
    sexta-feira, 4 de abril de 2008 18:25
  • Adriano,

    Insira um ProgressBar no formulário e quando for utiliza-lo você coloca na propriedade VALUE o valor do "estagio" que está teu processo.

    Abre um projeto novo e no formulário da uma estudada nele.

    Faz algo assim no FORM_LOAD

    for(int i = 0; i < 100; i++)
    {
    ProgressBar1.Value = i;
    }

    Faz um step-by-step só pra você entender o funcionamento.

    No ProgressBar você tem diversos recursos para configurar ele, um dele é o MAXIMUN que é o Valor maximo da propriedade VALUE. Quando VALUE for igual a MAXIMUN o ProgressBar será totalmente preenchido.

    Se MAXIMUN for 100 e Value você colocar 50, metade do ProgressBar estará preenchido.

    Você pode mudar o valor de Maximun para o valor que desejar.

    Qualquer dúvida posta aê!!!


    []´s
    sexta-feira, 4 de abril de 2008 18:40
  •  

    Adriano,

     

    Mas se você já sabe quantas entradas tem só é preciso fazer o seguinte:

     

    ProgressBar1.Maximum = dtp.Rows.Count;

    ProgressBar1.Minimum = 0;

    ProgressBar1.Step = 1;

     

    E depois no loop é só colocar ProgressBar1.PerformStep() para actualizar a barra

    sexta-feira, 4 de abril de 2008 18:44
  • Valeu Juliano e Jorge, funcionou das duas maneiras, agora eu uso a forma que eu achar melhor, mto obrigado mesmo, eu nunca usei Progressbar, mto obrigado.
    segunda-feira, 7 de abril de 2008 11:27
  • Bom dia Adrina,

    Fico feliz em ter ajudado.

    Qualquer coisa estamos aê.

    Smile

    []´s
    segunda-feira, 7 de abril de 2008 12:58