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