Foros del Web » Programación para mayores de 30 ;) » .NET »

Progress bar durante inserción de datos

Estas en el tema de Progress bar durante inserción de datos en el foro de .NET en Foros del Web. Buenas, tengo un problemilla. En un proyecto que tengo tengo que hacer, en un bucle, muchos "INSERTS" a una base de datos en SQL Server ...
  #1 (permalink)  
Antiguo 20/05/2009, 02:17
 
Fecha de Ingreso: noviembre-2007
Mensajes: 44
Antigüedad: 16 años, 5 meses
Puntos: 0
Progress bar durante inserción de datos

Buenas, tengo un problemilla.
En un proyecto que tengo tengo que hacer, en un bucle, muchos "INSERTS" a una base de datos en SQL Server 2000 (cerca de 8000 inserts)

Eso es fácil, el problema es que durante la operación quiero mostrar una barra de progreso y no se cómo hacerlo, lo más cercano que me ha salido ha sido que la barra se llena un poco, y al finalizar la operación se llena de golpe.

Alguien sabe como puedo llenar la progress bar poco a poco durante la opearción?

Muchas gracias
  #2 (permalink)  
Antiguo 20/05/2009, 11:05
 
Fecha de Ingreso: octubre-2000
Mensajes: 1.692
Antigüedad: 23 años, 6 meses
Puntos: 19
Respuesta: Progress bar durante inserción de datos

Hola.
Tendrías que meter el proceso usando un Thread o usando un BrackgroundWorker para que las dos operaciones puedan trabajar en conjunto:

http://geeks.ms/blogs/eecsaky/archiv...undWorker.aspx

http://vbnotebookfor.net/2007/09/24/...rker-in-vbnet/

También lo pudes hacer agregando un timer para ir cargando el progressbar
__________________
PD: Con amor, fe, amor a Dios y amistad podemos hacer un mundo mejor!!!!
  #3 (permalink)  
Antiguo 22/05/2009, 09:59
 
Fecha de Ingreso: marzo-2005
Mensajes: 1.418
Antigüedad: 19 años, 1 mes
Puntos: 9
Respuesta: Progress bar durante inserción de datos

Si decidis programar con un Thread, tenes que tener especial cuidado al momento de actualizar la barra de progreso, ya que el evento se produce en un subproceso distinto al que creo la barra. Esto pasa no solo con la barra de progreso, sino tambien con cualquier elemento que forme parte de la GUI.
Para evitar esto, tenes que crearte una funcion aparte que se encargue de establecer el valor que corresponde en la barra de progreso y hacer que el formulario invoque este metodo. Esto se hace a traves de tuform.Invoke().
Saludos.
__________________
Add, never Remove
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:59.