Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: 1mpuls0 en 1 Mayo 2014, 01:33 am



Título: Problema en OleDb Open
Publicado por: 1mpuls0 en 1 Mayo 2014, 01:33 am
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
  1. Public Function ExistsInDBAdjust(ByVal tables As String, ByVal states As Integer, ByVal years As Integer) As Boolean
  2.        Dim connectionExists As New OleDbConnection(strConexionAccess)
  3.        Dim dataReaderExists As OleDbDataReader
  4.  
  5.        Dim queryExists As String = ""
  6.        Dim ages = ComboBoxAgesDeathsOperations.SelectedIndex
  7.  
  8.        If ages = -1 Then
  9.            queryExists = "SELECT ajuste FROM [" & tables & "] WHERE entidad_fk=" & states & " AND año=" & years
  10.        Else
  11.            queryExists = "SELECT ajuste FROM [" & tables & "] WHERE entidad_fk=" & states & " AND año=" & years & " AND edad_fk=" & ages
  12.        End If
  13.  
  14.        Dim commandExists As New OleDbCommand(queryExists, connectionExists)
  15.  
  16.  
  17.        connectionExists.Open()
  18.  
  19.        dataReaderExists = commandExists.ExecuteReader()
  20.  
  21.        dataReaderExists.Read()
  22.        Dim adjust As Integer
  23.        Dim flag As Boolean = False
  24.  
  25.        Try
  26.            If dataReaderExists.IsDBNull(0) Then
  27.                flag = False
  28.            Else
  29.                flag = True
  30.            End If
  31.        Catch ex As InvalidOperationException
  32.            flag = False
  33.        End Try
  34.  
  35.        dataReaderExists.Close()
  36.        connectionExists.Close()
  37.  
  38.        Return flag
  39.    End Function
  40.  

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.