2016-12-30 27 views
0
Public Function QueryDataSet(ByVal strSQL As String) As DataSet 
    Dim ds As New DataSet 
    Dim dtAdapter As New SqlDataAdapter 
    objConn = New SqlConnection 
    With objConn 
     .ConnectionString = strConn 
     .Open() 
    End With 
    objCmd = New SqlCommand 
    With objCmd 
     .Connection = objConn 
     .CommandText = strSQL 
     .CommandType = CommandType.Text 
    End With 
    dtAdapter.SelectCommand = objCmd 
    dtAdapter.Fill(ds) 

    objConn.Close() 
    objConn.Dispose() 
    SqlConnection.ClearPool(objConn) 
    objConn = Nothing 
    Return ds 
End function 

以上是在類我該如何解決一個最大池大小 - ASP.NET

如何解決我的功能解決了最大池大小是完全在我的服務器上?

請幫幫我。

+0

可能的重複http://stackoverflow.com/questions/15848239/how-to-solve-max-connection-pool-error –

+1

請複製/粘貼確切的錯誤信息 –

+1

可能的重複[如何解決連接問題ASP.NET和SQL Server之間的池問題?](http://stackoverflow.com/questions/670774/how-can-i-solve-a-connection-pool-problem-between-asp-net-and-sql-服務器) –

回答

0

使用下面的代碼

Public Function QueryDataSet(ByVal strSQL As String) As DataSet 
    Dim ds As New DataSet 
    Dim dtAdapter As New SqlDataAdapter 
Try 
    objConn = New SqlConnection 
    With objConn 
     .ConnectionString = strConn 
     .Open() 
    End With 
    objCmd = New SqlCommand 
    With objCmd 
     .Connection = objConn 
     .CommandText = strSQL 
     .CommandType = CommandType.Text 
    End With 
    dtAdapter.SelectCommand = objCmd 
    dtAdapter.Fill(ds) 

    objConn.Close() 
    objConn.Dispose() 
    SqlConnection.ClearPool(objConn) 
    objConn = Nothing 

Catch ex As Exception 
MessageBox.Show(ex.Message) 

Finally 

    objConn.Close() 
    objConn.Dispose() 
    SqlConnection.ClearPool(objConn) 
    objConn = Nothing 

End Try 

    Return ds 
End function 

或在連接字符串添加MaxPoolSize=abc

+0

更好的解決方案是確保使用'Using'語句關閉連接。增加池大小隻是掩蓋連接泄漏,它將*仍然*降低吞吐量在服務器 –

+0

謝謝arjun我會嘗試它。在我發佈一個問題之前,我已經在連接字符串中修復了MaxPoolSize = 1000。 –