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

no actualiza tabla por que??

Estas en el tema de no actualiza tabla por que?? en el foro de .NET en Foros del Web. Estoy tratando de actualizar un campox desde otro campoy en la misma tabla, y no se donde esta mi error (NO ACTUALIZA), aqui esta el ...
  #1 (permalink)  
Antiguo 20/12/2008, 11:31
 
Fecha de Ingreso: mayo-2008
Mensajes: 353
Antigüedad: 16 años
Puntos: 3
no actualiza tabla por que??

Estoy tratando de actualizar un campox desde otro campoy en la misma tabla, y no se donde esta mi error (NO ACTUALIZA), aqui esta el codigo please ayuda. GRACIAS (asp.net 1.1 y Access)

Dim comando As OleDbCommand, strSql1 As String, produ As String, ProductIDx As Long
Dim consulta As OleDbDataReader, productx As String
oConn.Open()
strSql1 = "select * from products order by productid"
comando = New OleDbCommand(strSql1, oConn)
consulta = comando.ExecuteReader
Do While consulta.Read()
produ = consulta.Item("Description")
ProductIDx = Convert.ToInt64(consulta.Item("ProductID"))
x = 1
algo = Mid(produ, x, 1)
Do While algo <> " "
x = x + 1
algo = Mid(produ, x, 1)
Loop
productx = Mid(produ, 1, x - 1)
comando = New OleDbCommand("UPDATE products SET ModelName = '" & productx & "' where ProductID = " & ProductIDx & "", oConn)

Loop
consulta.Close()
oConn.Close()
lblStatus.Text = "fin"
  #2 (permalink)  
Antiguo 20/12/2008, 12:10
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Respuesta: no actualiza tabla por que??

y donde haces el comando.ExecuteNonQuery para q ejecute el update??
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #3 (permalink)  
Antiguo 20/12/2008, 14:19
 
Fecha de Ingreso: mayo-2008
Mensajes: 353
Antigüedad: 16 años
Puntos: 3
pero no

Ok le coloco esto

comando = New OleDbCommand("UPDATE products SET ModelName = '" & productx & "' where ProductID = " & ProductIDx & "", oConn)
comando.ExecuteNonQuery()

y lanza este mensaje

There is already an open DataReader associated with this Connection which must be closed first ..... luego hice esto

comando = New OleDbCommand("UPDATE products SET ModelName = '" & productx & "' where ProductID = " & ProductIDx & "", oConn)
consulta.Close()
comando.ExecuteNonQuery()

pero solo me actualiza el 1 record y lanza este mensaje
Invalid attempt to Read when reader is closed.

Lo que estoy haciendo es un while ... loop y actualizar todos los registros que son como 255825
sera que hay otra forma de hacerlo??
Gracias por contestar
  #4 (permalink)  
Antiguo 20/12/2008, 15:13
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Respuesta: no actualiza tabla por que??

consulta.Close antes de eso, el mensaje es claro el datareader tiene el canal ocupaod en la conexion una solucion es hacer consulta.Close().
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #5 (permalink)  
Antiguo 20/12/2008, 15:27
 
Fecha de Ingreso: mayo-2008
Mensajes: 353
Antigüedad: 16 años
Puntos: 3
no actualiza tabla por que??

Gracias pero no te entendi antes de que?? por que eso lo hice, miralo

comando = New OleDbCommand("UPDATE products SET ModelName = '" & productx & "' where ProductID = " & ProductIDx & "", oConn)

consulta.Close()

comando.ExecuteNonQuery()


pero solo me actualiza el primer record y lanza este mensaje

Invalid attempt to Read when reader is closed.

Anyway gracias por responder
  #6 (permalink)  
Antiguo 20/12/2008, 15:52
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Respuesta: no actualiza tabla por que??

tienes toda la razon lo q si me doy cuenta es q haces un loop ( y me doy cuenta hasta ahora) para poder hacer eso que quieres necesitaras hacer esto que se llama MARS (solo disponible en ado.net 2.0 y si no me equivoco para sqlserver)

http://www.devx.com/dbzone/Article/30132

pero lo que tu puedes hacer es:

1.- eliminar esa linea que te dije de consulta.close no va
2.- Crear otra conexion oConn2 (identica a oConn) y usarla en el comando del update.

y con eso se resolvera el problema.
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5

Última edición por Peterpay; 20/12/2008 a las 16:00
  #7 (permalink)  
Antiguo 20/12/2008, 16:02
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Respuesta: no actualiza tabla por que??

.....
oConn2.Open()
comando = New OleDbCommand("UPDATE products SET ModelName = '" & productx & "' where ProductID = " & ProductIDx & "", oConn2)
comando.ExecuteNonQuery()
oConn2.Close()

el codigo como lo tienes actualmente sin el consulta.Close() y solo oConn2 se agregaria al contexto
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #8 (permalink)  
Antiguo 20/12/2008, 17:23
 
Fecha de Ingreso: mayo-2008
Mensajes: 353
Antigüedad: 16 años
Puntos: 3
actualiza tabla por que??

excelente funciono, muchas gracias, pero debo migrar para asp.net avanzado por que este asp.net 1.1 es un poco limitado. en slq 2000 esto se hace rapido pero en Access DB no creo, asi lo quiso el cliente.
gracias
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 20:44.