none
Problemas com atualização da Gridview RRS feed

  • Pergunta

  • Pessoal. Boa Tarde!!!

    Tenho uma aplicação em C# Form e a mesma é utilizada em dois lugares ao mesmo tempo.

    Quando consulto a pessoa em uma das estações de trabalho e dou saida nela a mesma some da grid, mas se faço uma consulta na outra estação a pessoa ainda esta lá e estou tendo varios problemas de duplicar as saidas das pessoas, pois as duas estações estão dando saida na mesma pessoa uma minutos depois da outra.

    Acredito ser um problema de Refresh na base de dados ou na propria grid.

    O que eu poderia fazer para não aparecer mais para o outro usuário a pessoa que ja foi dado baixa? isso sem ter que fechar e abrir novamente o programa.

    Desde de já muito obrigado pessoal...

     


    Luiz Carlos

    sexta-feira, 22 de março de 2013 16:32

Respostas

  • Uma forma simples de validar essa situação é realizar uma busca no registro que esta sendo manipulado antes do mesmo ser confirmado.

    Operações:

    1) - Alteração de registro
          1.1) Validar o status do registro no Banco de Dados para validar
          1.2) Retornar mensagem de status ja alterado caso este ja esteja com o status modificado
          1.3) Somente executa a alteração caso o status possibilite ainda a alteração
          1.4) Apos o termino da alteração executar um refresh() nos registros

    Lembrando que as alterações realizadas na sua grid não serã refletidas automaticamente em outra estação de trabalho que esteja com a mesma tela aberta. Como ate ja foi inserido nos Posts anteriores pode-se inserir um TIMER na aplicação, mas você terá que criar um codigo que se por acaso você estiver selecionando registros ou realizando uma busca esse TIMER deve ficar desativado pois isso podera lhe trazer dificuldades durante seu procedimento.

    Ainda acho mais vantajosa a boa validação de dados antes de executar a operação e um refresh a cada ação dessa.

      


    Junior

    • Marcado como Resposta LC-Locker segunda-feira, 8 de abril de 2013 14:41
    sexta-feira, 29 de março de 2013 16:28

Todas as Respostas

  • Olá,

    Faça uma consulta no banco para ver se já não foi dado baixa, é o melhor a ser feito.Você até pode colocar um timer para dar refresh no grid, mas ainda vai ficar suscetível a falhas por conta do intervalo dos refreshs, logo o melhor é sempre verificar antes se a operação já não foi feita, isso independe de grid atualizado ou não.

    • Sugerido como Resposta Afonso Fernandes segunda-feira, 25 de março de 2013 11:15
    sexta-feira, 22 de março de 2013 16:46
  • Fazendo a consulta no banco lá não tem mais a pessoa já foi dado baixa... Mas no programa se eu fizer uma consulta ainda acho ele e consigo dar outra baixa...

    Estou pensando em utilizar GridSaida.Refresh(); no fim do evento Click do botão saida.

    Isso pode resolver???


    Luiz Carlos

    sexta-feira, 22 de março de 2013 17:33
  • Olá,

    Acho que você não entendeu, sua rotina tem que consultar o banco justamente pra não deixar dar baixa novamente, independente se a pessoa ainda está no grid ou não.

    • Sugerido como Resposta Afonso Fernandes segunda-feira, 25 de março de 2013 11:15
    sexta-feira, 22 de março de 2013 17:43
  • Uma forma simples de validar essa situação é realizar uma busca no registro que esta sendo manipulado antes do mesmo ser confirmado.

    Operações:

    1) - Alteração de registro
          1.1) Validar o status do registro no Banco de Dados para validar
          1.2) Retornar mensagem de status ja alterado caso este ja esteja com o status modificado
          1.3) Somente executa a alteração caso o status possibilite ainda a alteração
          1.4) Apos o termino da alteração executar um refresh() nos registros

    Lembrando que as alterações realizadas na sua grid não serã refletidas automaticamente em outra estação de trabalho que esteja com a mesma tela aberta. Como ate ja foi inserido nos Posts anteriores pode-se inserir um TIMER na aplicação, mas você terá que criar um codigo que se por acaso você estiver selecionando registros ou realizando uma busca esse TIMER deve ficar desativado pois isso podera lhe trazer dificuldades durante seu procedimento.

    Ainda acho mais vantajosa a boa validação de dados antes de executar a operação e um refresh a cada ação dessa.

      


    Junior

    • Marcado como Resposta LC-Locker segunda-feira, 8 de abril de 2013 14:41
    sexta-feira, 29 de março de 2013 16:28