我正在执行多个查询并监控服务器我看到连接在End Using
声明之后保持打开一段时间(3-5分钟?)。
这是using
声明的正常行为吗?
我的查询执行使用自定义类bdConex,看起来像:
Dim cnx As New bdConex({Id})
Using cnx.conexionBD
cnx.query("MyStoredProcedure")
If cnx.dataReader.Read Then
Me.Id = cnx.item(Of Integer)("fk_item")
Me.Number= cnx.item(Of String)("number")
End If
End Using
cnx.close()
其中:
Public Class bdConex
Public Property conexionBD As SqlConnection
Public Property dataReader As SqlDataReader
Public Sub query(ByVal ssql As String)
If InStr(ssql, "select", CompareMethod.Text) <> 1 Then
ssql = String.Concat("Exec ", parseSQL(ssql))
End If
If Me.ActivarLog = TipoDeLog.ErroresYConsultas Then
logger.log(ssql, "bdConex.query()")
End If
Try
Using Me.conexionBD
Me.conexionBD = New SqlConnection(Me.cadena_de_conexion)
Me.conexionBD.Open()
Dim myCommand As SqlCommand = New SqlCommand(ssql, Me.conexionBD)
Me.dataReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection)
Me.HasRows= Me.dataReader.HasRows
End Using
Catch ex As Exception
Me.HasRows = False
'log error
End Try
End Sub
由于