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
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.