Foros del Web » Programando para Internet » ASPX (.net) »

There is al ready an open Datareader associated with this Command which must be close

Estas en el tema de There is al ready an open Datareader associated with this Command which must be close en el foro de ASPX (.net) en Foros del Web. Estimados Amigos de forosdelweb. Se me ha presentado unos problemas en mi aplicación en ASP .NET, me eh dado cuenta que arroja este error: There ...
  #1 (permalink)  
Antiguo 26/03/2010, 08:51
Avatar de vidalsoft  
Fecha de Ingreso: julio-2008
Ubicación: /www/...
Mensajes: 339
Antigüedad: 15 años, 9 meses
Puntos: 1
There is al ready an open Datareader associated with this Command which must be close

Estimados Amigos de forosdelweb.
Se me ha presentado unos problemas en mi aplicación en ASP .NET, me eh dado cuenta que arroja este error:

There is al ready an open Datareader associated with this Command which must be closed first.

cuando dos o mas usuarios en concurrencia ejecutan un Metodo que utiliza SqlHelper.ExecuteDateSet (cadenaconexion,"SP_NOMBRE_PROCEDIMIENTO",objeto.p ropiedad1,objeto.propiedad2)

Espero que me puedan ayudar, y ver la forma de evitar ese mensaje de error.

Saludos
__________________
Anthony Vidal Contreras | @AnthonyVidalC | Skype: vidalsystem | [email protected]
  #2 (permalink)  
Antiguo 26/03/2010, 16:25
Avatar de jaullo  
Fecha de Ingreso: abril-2009
Mensajes: 994
Antigüedad: 15 años
Puntos: 30
Respuesta: There is al ready an open Datareader associated with this Command which mu

Hola vidalsoft, tal como dice el error esta pasa porque has ejecutado un datareader y luego ejecutas otro sin haber cerrado el primero. Como no dices en que procedimiento te da, asumire que es una busqueda, si es así porque no usas un dataset y te evitas el problema.

Te dejo un ejemplo codebehind para el dataset

Dim DA = New SqlClient.SqlDataAdapter("Select * ...... conexion)
Dim DS = New DataSet
DS.Clear()
DA.Fill(DS, "tabla")
If DS.Tables("tabla").Rows.Count <> 0 Then
variable = DS.Tables("tabla").Rows(0)("columna")
Else

End If
DA.Dispose()
DS.Dispose()


Otra opcion es que cierres el datareader con un datareader.close

Saludos,

Etiquetas: close, open, aspx
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:07.