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

Actualizar varias filas seguidas en una BD (de una vez)

Estas en el tema de Actualizar varias filas seguidas en una BD (de una vez) en el foro de .NET en Foros del Web. Hola tengo una base de datos en la que quiero actualizar un parametro "caja" cada vez que el usuario edita una fila de la misma. ...
  #1 (permalink)  
Antiguo 28/01/2009, 08:36
 
Fecha de Ingreso: diciembre-2007
Mensajes: 20
Antigüedad: 16 años, 4 meses
Puntos: 0
Actualizar varias filas seguidas en una BD (de una vez)

Hola tengo una base de datos en la que quiero actualizar un parametro "caja" cada vez que el usuario edita una fila de la misma. Es decir, si yo edito la fila 17 de la BBDD y tengo 35 filas, pues que se actualice el parametro desde la fila 17 hasta la 35. Para ello actualizo la fila editada de forma normal, y luego he realizado una funcion que debe actualizar las siguientes.

El codigo de la misma es este (a parte de declaraciones y demás):

cn.Open()
dr = cmd2.ExecuteReader
Do While dr.Read
For i = 0 To dr.FieldCount - 1
If dr.GetValue(0) > indice Then
cajaactual = dr.GetValue(1)
cajaactual = cajaactual + diferenciaencaja
indice = dr.GetValue(0)
cn.Open()
cmdUpdate.Parameters.Add("@1", OleDbType.LongVarWChar).Value = cajaactual
cmdUpdate.Parameters.Add("@a", OleDbType.LongVarWChar).Value = indice
cmdUpdate.ExecuteNonQuery()
End If
Next
Loop
cn.Close()

Cuando compruebo su funcionamiento paso a paso todo va perfectamente, coge los datos de todas las filas de forma correcta, y en teoría, los guarda correctamente, pero solo en teoría, porque cuando voy a comprobar los datos guardados me encuentro con que solo ha actualizado la fila siguiente a la editada en un primer momento, es decir, "cambia la 17 que he editado yo, actualiza la 18, pero deja todas las demas como estaban".

Alguien sabe por qué?
Se me ha ocurrido que a lo mejor o se puede actualizar mas de una fila de forma consecutiva sin cerrar y abrir la conexion pero no lo se.

Espero vuestra ayuda, gracias.
  #2 (permalink)  
Antiguo 29/01/2009, 08:38
 
Fecha de Ingreso: diciembre-2007
Mensajes: 20
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: Actualizar varias filas seguidas en una BD (de una vez)

Ya está solucionado, basta con trabajar la solucion sobre la consulta, es decir, en vez de una consulta que actualice una fila, y repetir la consulta para cada fila que deseas actualizar, realizas una consulta que actualize todas las filas que cumplan los parametros deseados, y asi solo necesitas ejecutarla una vez.

Espero que a alguien le sirva esto de ayuda, igual que me han ayudado a mi
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 15:38.