2016-12-30 58 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。 –