Problema en OleDb Open

Iniciado por 1mpuls0, 1 Mayo 2014, 01:33 AM

0 Miembros y 1 Visitante están viendo este tema.

1mpuls0

Hola.

Tengo un problema con la siguiente función, esta función es llamada desde otras funciones, cada vez que se entra a cada una de esas funciones se crea una nueva conexión, cuando utilizo la función por primera vez mediante un botón que realiza unos cálculos no hay problema. El problema ocurre cuando vuelvo a hacer clic nuevamente sobre el botón, específicamente en la línea connectionExists.Open()
se muestra el mensaje: No se controló OleDbException. Error no especificado
En la función anterior donde llamo a esta función no contienen ningún tipo de conexión a la base de datos.
Pensaba que era algun problema al cerrar la conexión por eso coloqué una bandera booleana en lugar de hacer el return dentro del try-catch o if-else

Alguien tiene una idea de que pueda ser?.
Gracias

Código (vbnet) [Seleccionar]

Public Function ExistsInDBAdjust(ByVal tables As String, ByVal states As Integer, ByVal years As Integer) As Boolean
       Dim connectionExists As New OleDbConnection(strConexionAccess)
       Dim dataReaderExists As OleDbDataReader

       Dim queryExists As String = ""
       Dim ages = ComboBoxAgesDeathsOperations.SelectedIndex

       If ages = -1 Then
           queryExists = "SELECT ajuste FROM [" & tables & "] WHERE entidad_fk=" & states & " AND año=" & years
       Else
           queryExists = "SELECT ajuste FROM [" & tables & "] WHERE entidad_fk=" & states & " AND año=" & years & " AND edad_fk=" & ages
       End If

       Dim commandExists As New OleDbCommand(queryExists, connectionExists)


       connectionExists.Open()

       dataReaderExists = commandExists.ExecuteReader()

       dataReaderExists.Read()
       Dim adjust As Integer
       Dim flag As Boolean = False

       Try
           If dataReaderExists.IsDBNull(0) Then
               flag = False
           Else
               flag = True
           End If
       Catch ex As InvalidOperationException
           flag = False
       End Try

       dataReaderExists.Close()
       connectionExists.Close()

       Return flag
   End Function


Edito.
Por accidente realicé una operación y en una función con la cual no tenía ese problema (el mismo) ahora ocurre xD no sé que pasa.

La computadora se ha apagado por accidente cuando el visual studio 2012 está abierto, así que no sé si pudo causar algun error en alguna librería.



Edito.

Ya hice el test en otra laptop y ocurre lo mismo, entonces creo que queda descartada el posible error de alguna librería.
El problema que detecto es que por ejemplo esa función se realiza 32 veces, cuando llega al numero 30 ocurre el error, después modifico el código para realice del 30 al 32 y lo hace sin problema.
Estoy pensando en colocar algun timer o thread dentro del ciclo para realizar la operación.



Edito.
Ya agregué un Thread y sigue igual :/

El problema estaba en una conexión diferente a la que utilizo en este método, parece que la sobresaturé xD pero el error me lo enviaba hasta en otra conexión de otra función.
abc