Ok, pregunté sobre este mismo error a principios de esta semana y tuve algunas respuestas muy útiles y sin duda las cosas han mejorado drásticamente desde que comencé a seguir las sugerencias.ExecuteReader requiere una conexión abierta y disponible. El estado actual de la conexión está cerrado
Sin embargo, ahora estoy usando el método "correcto" y de mejores prácticas para acceder a la base de datos. Aún obtengo este error en algunas funciones y no puedo lograr que desaparezca para ese bloque. Aquí está mi código:
Public Shared Function doesBasketExist(ByVal baskethash As String) As Boolean
Dim _r As Boolean
Using db As New SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings("pitstopConnectionString").ConnectionString)
Using cmd As New SqlCommand("doGetBasketByHash", db)
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.AddWithValue("@baskethash", baskethash)
Using dr As SqlDataReader = cmd.ExecuteReader()
If dr.HasRows() = True Then
_r = True
Else
_r = False
End If
dr.Close()
End Using
End Using
End Using
Return _r
End Function
Ahora, sin importar lo que haga, obtengo: ExecuteReader requiere una conexión abierta y disponible. El estado actual de la conexión está cerrado. en esta conexión. Tengo funciones con objetos llamados lo mismo dentro de esta clase (cmd, dr etc.) pero el uso se cierra después de sí ¿no?
Se aceptan sugerencias :)