none
Actualizacion automatica de una consulta en un formulario en un datagridview cada 5 minutos RRS feed

  • Pregunta

  • Buen dia,

    Quisiera saber como puedo hacer para que cada 5 minutos se actualice una consulta de un datagridview en un form para visual basic.

    De antemano, gracias. 

    Saludos.

    miércoles, 27 de junio de 2018 23:28

Respuestas

  • Buenas.  Le cuento que hay un foro específico para Windows Forms.  Sería un mejor lugar para estas preguntas.

    Yo siempre trabajo Windows Forms y WPF con vinculación a datos.  Las grillas como el DataGridView, las vinculo a colecciones de objetos.  Los objetos tienen propiedades que representan, por lo general, las columnas de una tabla en base de datos.  Esto se le conoce como desarrollo en capas.

    Para actualizar su DGV cada 5 minutos, solamente debe incluir un componente tipo Timer en su formulario y configurarlo para estos 5 minutos que usted comenta.  Luego en el evento Tick (creo que así se llama) de ese Timer repite la consulta a la base de datos y vuelve a vincular la grilla a la nueva colección.

    Adicionalmente, si los objetos de la colección que vincula a la grilla implementan la interfaz INotifyPropertyChanged, entonces podría más bien, en vez de vincular la grilla a una nueva colección con nuevos objetos, podría más bien hacer un bucle que compare los datos que ya tenía con los datos nuevos, y actualizar las propiedades de los objetos viejos con las de los objetos nuevos; luego elimina de la lista que tenía los registros que desaparecen (si es que desaparecen) y luego agrega los nuevos que aparecen.  Concedido, es mucho trabajo para lo que parece ser muy poca ganancia.  Sí, es cierto.  En Windows Forms esto no parece tener mucho sentido.  Sin embargo, en WPF uno puede desencadenar animaciones en la grilla cuando el valor de una propiedad cambia.  Entonces en WPF sería muy bonito ver cómo la grilla cambia, por ejemplo, de colores conforme las propiedades cambian.

    Si necesita ayuda implementando algo de esto, pues pregunte.  Le adelanto que la implementación de INotifyPropertyChanged es muy fácil y de hecho puede usar wj.DataBinding.  El wiki explica cómo usar la clase wj.DataBinding.NotifyPropertyChanged.

    Si necesita ver un ejemplo relativamente sencillo de cómo trabajar en capas y usar colecciones de objetos para vincular grillas, puede ver los ejemplos de uso de wj.DataBinding en este otro proyecto.


    Jose R. MCP
    My GIT Repositories | Mis Repositorios GIT

    • Marcado como respuesta Eduardo060888 martes, 4 de septiembre de 2018 21:33
    jueves, 28 de junio de 2018 0:45