none
Ayuda Para Poder Lograr Refrescar Datos, C# RRS feed

  • Pregunta

  • Antes que nada Buenas tardes compañeros Programadores, les comento me encuentro programando una aplicación para mi examen de universidad.

    Tengo una aplicación instaladas en 2 computadoras diferentes, las cuales pueden comparten datos a través de un servidor  

    Pero tengo una duda y a la vez un problema es que cuando ingreso datos desde una de esta aplicaciones , en la siguiente aplicación  no se refleja al instante, solo se refleja si mando a pedir la consulta a la base de datos.

    ejemplo:

    en esta primera aplicación que muestra la imagen se acaba de agregar un dato. esta señalada en amarillo, pero en la siguiente imagen se muestra la otra aplicación en la otra pcque por cierto esta conectadas por Internet.

    En esta aplicación no se me refleja el dato agregado que se introdujo desde la otra aplicación, y la única manera que se me refleja es cuando le mando a pedir la consulta es como actualizar manualmente, y lo que busco es que actualice automáticamente, Ademas se me ocurrió hacer un timer para estar pidiendo las consultas pero mmmm como decirlo solo es una idea pero creo que no es conveniente por que estaría sobre saturando a la aplicación que cada rato este pidiendo todas las consultas, no se si haya una técnica o método que pueda ayudarme. Gracias por su ayuda


    Juega Contra El Mejor Muere Como Los Demas

    sábado, 2 de noviembre de 2019 19:55

Todas las respuestas

  • Hola GtxMexico

    Me parece que lo más económico que podrías hacer, es cada vez que ingresas un dato, actualizas. Pero, si por ejemplo, vas a ingresar 20 datos seguidos, lo que podrías hacer es actualizar luego de ingresar el último, para eso deberías tener, para ingresar los datos, algo como un form "Introducir datos" con los botones "Continuar", "Terminar", y "Cancelar"

    Y para que en la otra computadora, que está conectada en red, también haga lo mismo, tendrías que enviarle de alguna forma (a través de un puerto, pero desconozco como funciona eso) una señal, para que actualice igual que la primera.

    Lo que no se, es como organizas los datos en la memoria (RAM) y como funciona tu interfaz gráfica, porque dependiendo de eso quizás se podría hacer un poco más económico. Por ejemplo, si tenés un List< > como DataSource de un DataGridView, al introducir datos en el List <> (y en la base de datos) se puede actualizar el DataSource y la grilla sin necesidad de volver a leer de la base de datos

    Saludos

    Pablo

    sábado, 2 de noviembre de 2019 23:56
  • No sé cómo es el diseño del sistema, pero si tienes que comunicar dos aplicaciones y quieres que sea en tiempo real, lo ideal es utilizar sockets. Si te sirve aquí te dejo un ejemplo de un cliente socket. Cualquier duda puedes preguntar.

    https://github.com/alexeirojas87/TCPWinSockClient?files=1

    domingo, 3 de noviembre de 2019 16:38
  • hola

    >>la única manera que se me refleja es cuando le mando a pedir la consulta es como actualizar manualmente

    pues claro, sino ejecutas una accion que realice el SELECT para traer los datos actualizados no se refleja el cambio

    salvo que pongas un Timer que cada cierto tiempo actualice los datos

    o sino ver de usar SqlDependency, con esa clase podria monitorear los cambios sobre una tabla y si se inserta o actualizan los registros tendras un evento para refrescar la informacion

    Detectar cambios con SqlDependency

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    lunes, 4 de noviembre de 2019 3:04