0
我写了一个Web应用程序,其中我没有允许此应用程序使用连接池。我写了如下所示的示例代码,它从我的表中获取记录20次,并填写每次都有密切关系的数据集。SQL Server池问题
但是,如果我看看SQL Server活动监视器,它会显示一个连接在休眠模式下打开。
- 有人告诉我为什么会发生这种情况?
- 如果用户增加,这种睡眠连接会增加吗?
- 如果SQL Server将我的连接集中起来,那么为什么它的池如果我不允许为这个应用程序池?我怎样才能避免这种情况?
代码来获取数据
Try
Dim i As Integer
For i = 0 To 20
Dim _db As New commonlib.Common.DBManager(ConfigurationManager.ConnectionStrings("ConnectionString").ConnectionString.ToString())
GridView1.DataSource = _db.ExecuteDataSet(CommandType.Text, "SELECT * FROM BT_AppSetting")
GridView1.DataBind()
Next
Catch ex As Exception
Response.Write(ex.Message.ToString())
ex = Nothing
End Try
DBManager构造
'CONSTRUCTOR WHICH ACCEPTS THE CONNECTION STRING AS ARGUMENT
Public Sub New(ByVal psConnectionString As String)
'SET NOT ERROR
_bIsError = False
_sErrorMessage = Nothing
_cn = New SqlConnection
_sConnectionString = psConnectionString
_cn.ConnectionString = _sConnectionString
Try
_cn.Open()
Catch ex As Exception
_bIsError = True
_sErrorMessage = ex.ToString
ex = Nothing
End Try
End Sub
ExecuteDataSet函数体
Public Function ExecuteDataSet(ByVal CmdType As CommandType, ByVal CmdText As String, ByVal ParamArray Params As SqlParameter()) As DataSet
Try
Dim cmd As New SqlCommand
Dim da As New SqlDataAdapter(cmd)
Dim ds As New DataSet
PrepareCommand(cmd, CmdType, CmdText, Params)
da.Fill(ds)
cmd.Parameters.Clear()
If _cn.State = ConnectionState.Open Then
_cn.Close()
End If
Return ds
Catch ex As Exception
_sErrorMessage = ex.ToString
_bIsError = True
ex = Nothing
Return Nothing
End Try
请帮我....等待的善意回复
请告诉我们您的连接字符串,请! – 2009-11-12 06:18:46
除非**明确**关闭连接池,否则默认情况下会进行池化;也 - 为什么你要把它关掉呢? – 2009-11-12 06:22:22