none
Atualizar Grid durante a execução de uma procedure RRS feed

  • Pergunta

  • Boa tarde pessoal do forum!

    Seguinte... eu tenho uma procedure que realiza lançamentos e gera logs de execuções.

    Para os logs são realizados commits.

    O que eu quero é: durante a execução da procedure (que demora alguns segundos para ser realizada por completa), ir apresentando os logs de execuções.

    Estou utilizando Visual Studio, linguagem C#.

    Isso é possível??


    • Editado Marlon Faria quinta-feira, 8 de dezembro de 2016 19:25
    quinta-feira, 8 de dezembro de 2016 19:25

Respostas

Todas as Respostas

  • Olá,

    Seu projeto é Desktop ou Web?

    Se for Desktop você pode fazer o uso de um timer para ficar dando refresh nesse grid


    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    André Secco
    Microsoft MSP & MSDN Tech Advisor
    Blog: http://andresecco.com.br
    GitHub: http://github.com/andreluizsecco
    Twitter: @andre_secco


    sexta-feira, 9 de dezembro de 2016 10:05
  • É Desktop mas não deu certo, fiz da seguinte maneira:

    > Coloquei o timer para rodar(a cada 10 segundos)  fazendo a consulta e ir atualizando a grid;

    > Na sequência chamei a procedure. 

    Fui debugando para ir acompanhando, o timer é iniciado e logo é chamado a procedure, e nisso o processo fica parado até a procedure ser executada por completo. Nesse tempo o conteúdo do timer não é executado.

    Ai assim que acaba a execução da procedure o timer começa a trabalhar mas durante a execução não.

    Talvez eu não teria que trabalhar com Threads?

    sexta-feira, 9 de dezembro de 2016 10:29
  • Marlon, 

    Tente colocar pra executar sua stored procedure com o SqlCommand.ExecuteNonQueryAsync.

    Já ia esquecendo, você questionou se teria que trabalhar com Threads. O timer não executa na mesma thread que o iniciou, ele utiliza um pool de threads fornecido pelo sistema.


    If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer".

    Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".


    sexta-feira, 9 de dezembro de 2016 10:36
  • Você pode trabalhar com BackgroundWorker também.

    Dá uma olhada: http://www.devmedia.com.br/thread-em-c-usando-backgroundworker/11049


    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    André Secco
    Microsoft MSP & MSDN Tech Advisor
    Blog: http://andresecco.com.br
    GitHub: http://github.com/andreluizsecco
    Twitter: @andre_secco

    • Marcado como Resposta Marlon Faria sexta-feira, 9 de dezembro de 2016 11:28
    sexta-feira, 9 de dezembro de 2016 10:43
  • Vou dar uma olhada nessas duas opções e depois posto o resultado. Obrigado pela ajuda.
    sexta-feira, 9 de dezembro de 2016 11:13
  • Funcionou perfeitamente com o BackgroundWorker;

    Coloquei o timer para rodar e a execução da procedure no BackgroundWorker;

    e o resultado foi aquilo que eu esperava, a procedure sendo executada e os logs sendo apresentados.

    Obrigado pela ajuda;


    sexta-feira, 9 de dezembro de 2016 11:31
  • Marlon,

    Você precisou usar o ExecuteNonQueryAsync? Caso não, não é necessário marcar minha sugestão como resposta.


    If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer".

    Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".

    sexta-feira, 9 de dezembro de 2016 11:40
  • Não utilizei, desmarquei já mas de qualquer maneira obrigado pela ajuda.

    sexta-feira, 9 de dezembro de 2016 11:44