Ver Mensaje Individual
  #2 (permalink)  
Antiguo 16/01/2015, 12:18
Avatar de leodp77
leodp77
 
Fecha de Ingreso: marzo-2013
Mensajes: 39
Antigüedad: 11 años, 5 meses
Puntos: 2
Respuesta: Concurrencia en ado.net

Actualizá la tabla (ubicada en el dataset con los datos de la db), que esta enlazada al control que muestra los datos, cada x segundos con la clase timer o despues de cada actualización para que vean siempre el dato actual.

Timer:
Implementa un temporizador que provoca un evento a intervalos definidos por el usuario. Este temporizador optimizado para el uso en aplicaciones de Windows Forms y se debería utilizar en una ventana.

http://msdn.microsoft.com/es-es/library/system.windows.forms.timer%28v=vs.110%29.aspx


Código C++:
Ver original
  1. private Timer timer1;
  2. public void InitTimer()
  3. {
  4.     timer1 = new Timer();
  5.     timer1.Tick += new EventHandler(timer1_Tick);
  6.     timer1.Interval = 2000; // in miliseconds
  7.     timer1.Start();
  8. }
  9.  
  10. private void timer1_Tick(object sender, EventArgs e)
  11. {
  12.     this.providersTableAdapter.Fill(paolaStockDataSet.Providers);
  13. }

ADO.NET utiliza manejo de concurrencia optimista porque "trabaja" con datos desconectados. Es un dataset con distintas tablas dentro, se actualiza la tabla, y luego se sincroniza con la bd fisica. Mientras se actualiza la bd se lockea el registro que está siendo modificado. Cuando se quiere actualizar el registro se comparan las versiones. Si las mismas son diferentes, da error de concurrencia. Podés agregarle tu logica de negocios para mejorar el control de versiones. En el siguiente enlace se explica como hacerlo con codigo SQL.

Diferentes formas de manejar la concurrencia:
http://msdn.microsoft.com/en-us/library/cs6hb8k4%28v=VS.80%29.aspx
__________________
"La mejor forma de obtener información correcta de los foros de internet es enviar algo incorrecto y esperar las correcciones"
-- Matthew Austern

Última edición por leodp77; 16/01/2015 a las 14:29