Visual Basic.NET - The SqlCommand is currently busy Open

 
Vista:
sin imagen de perfil

The SqlCommand is currently busy Open

Publicado por alfredo (15 intervenciones) el 08/05/2008 22:42:52
Tengo una aplicacion en VS.NET 2003 en 3 capas, tengo problemas de concurrencia, creo, por que me esta dando The SqlCommand is currently busy Open, Fetching.
Cuando leo datos uso:

Public Overloads Function TraerDataSet(ByVal ProcedimientoAlmacenado As String, ByVal ParamArray Argumentos() As System.Object) As System.Data.DataSet
Dim mDataSet As New System.Data.DataSet
CrearDataAdapter(ProcedimientoAlmacenado, Argumentos).Fill(mDataSet)
Me.CerrarConexion()
Return mDataSet
End Function

Protected Overrides Function CrearDataAdapter(ByVal ProcedimientoAlmacenado As String, ByVal ParamArray Args() As Object) As System.Data.IDataAdapter
Dim mCom As System.Data.SqlClient.SqlCommand = Comando(ProcedimientoAlmacenado)
Dim ds As DataSet
Dim dt As String
'' Si se han recibido Argumentos,
''se procede a asignar los valores correspondientes
If Not Args Is Nothing Then
CargarParametros(mCom, Args)
End If
Return New System.Data.SqlClient.SqlDataAdapter(mCom)

End Function

Protected Overrides Function Comando(ByVal ProcedimientoAlmacenado As String) As System.Data.IDbCommand
Dim mComando As System.Data.SqlClient.SqlCommand
If mColComandos.Contains(ProcedimientoAlmacenado) Then
mComando = CType(mColComandos.Item(ProcedimientoAlmacenado), System.Data.SqlClient.SqlCommand)
Else
Dim oConexion2 As New System.Data.SqlClient.SqlConnection(CadenaConexion)
oConexion2.Open()
mComando = New System.Data.SqlClient.SqlCommand(ProcedimientoAlmacenado, oConexion2)
Dim mConstructor As New System.Data.SqlClient.SqlCommandBuilder
mComando.CommandType = CommandType.StoredProcedure
mConstructor.DeriveParameters(mComando)
oConexion2.Close()
mColComandos.Add(ProcedimientoAlmacenado, mComando)
End If
With mComando
.Connection = Me.Conexion
.Transaction = MyBase.mTransaccion
End With
Return mComando
End Function

Public Overloads Function CerrarConexion()

If Not EnTransaccion Then
mConexion.Close()
End If
End Function
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder