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

Intento no válido de FieldCount cuando el lector está cerrado.

Estas en el tema de Intento no válido de FieldCount cuando el lector está cerrado. en el foro de .NET en Foros del Web. Hola, Seguro que es un error "de Cajon" como se dice en mi tierra, pero no se a que puede deberse. tengo este codigo, y ...
  #1 (permalink)  
Antiguo 22/02/2005, 16:33
 
Fecha de Ingreso: diciembre-2001
Mensajes: 262
Antigüedad: 23 años, 3 meses
Puntos: 0
Intento no válido de FieldCount cuando el lector está cerrado.

Hola,

Seguro que es un error "de Cajon" como se dice en mi tierra, pero no se a que puede deberse.

tengo este codigo, y agradecería "Pistas"

Gracias.

Sub Page_Load(obj As Object, e As EventArgs)

intpadre = Request.Params("padre")

If intpadre="" Then
intpadre = -1
End If

dgFamilias.DataSource = objFamilias.Llenar_Familias(intpadre)
DataBind()

End Sub

y aqui la funcion:

Public Function Llenar_Familias(intpadre As String) As OledbDataReader


' Definimos el comando que trae los datos mediante un store procedure llamado spfamilias
Dim ObjCmd As New OleDbCommand ("sppadre", ObjConn)
ObjCmd.CommandType=CommandType.StoredProcedure

Dim ObjParam As OleDbParameter

ObjParam = ObjCmd.Parameters.Add("@padre",OleDbType.BStr)
ObjParam.Value = intpadre


Dim ObjLector As OleDbDataReader

TRY
ObjConn.Open()
objLector = ObjCmd.ExecuteReader

Catch ex As OleDbException
throw ex
Finally
ObjConn.Close()
End Try

Return ObjLector

End Function


End Class
  #2 (permalink)  
Antiguo 22/02/2005, 17:50
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 23 años, 1 mes
Puntos: 50
Y donde estas definiendo tu objeto connection ??

Cita:
Public Function Llenar_Familias(intpadre As String) As OledbDataReader
??????? y objConn ??

' Definimos el comando que trae los datos mediante un store procedure llamado spfamilias
Dim ObjCmd As New OleDbCommand ("sppadre", ObjConn)
Salu2
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #3 (permalink)  
Antiguo 22/02/2005, 21:52
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 20 años, 2 meses
Puntos: 7
Cuando se ejecuta:

dgFamilias.DataSource = objFamilias.Llenar_Familias(intpadre)

El DataReader que devuelves en la función Llenar_Familias, necesita una conexión abierta, pero dentro de esa función la estás cerrando:

Finally
ObjConn.Close()
End Try

Deberías cerrar la conexión despues de terminar de utilizar el DataReader. No sé si te sirva o no pero puedes cambiar la parte en que llamas al ExecuteReader por:

Try
ObjConn.Open()
objLector = ObjCmd.ExecuteReader(CommandBehavior.CloseConnecti on)
Catch ex As OleDbException
throw ex
End Try

Una observación, en la parte en la que manejas si se produce alguna excepción (catch), me parece que deberías agregar información adicional de la excepción, esto es muy útil para depurar.

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
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 18:36.