2009-07-17 98 views
0

任何一个可以帮助摆脱这种错误“超时从池中获取连接”

“超时之前从池中获取。这一个连接了过去expired.The时有发生,因为所有池的连接正在使用,并且最大池大小达到”

谢谢

回答

1

您是否记得在使用它们后关闭每个数据库连接?

-1

在连接字符串,请确保您设置池=假

<connectionStrings> 
    <clear/> 
    <add 
name="YourConnectionString" 
connectionString="Server=localhost;Database=your_db;Uid=username; _ 
Pwd=password;pooling=false;" <---------------POOLING = FALSE 
providerName="yourprovider"/> 
</connectionStrings> 
+2

但如果需要什么连接池? – CodeKiwi 2009-07-17 06:24:51

3

确保您使用的块为您创建的每个对象执行实现IDisposable:

using (var connection = new SqlConnection(connectionString)) { 
    using (var command = new SqlCommand(query, connection)) { 
     using (var reader = command.ExecuteReader()) { 
      while (reader.Read()) { 
       // do something with row 
      } 
     } 
    } 
} 

否则,当发生异常时,您将泄漏资源(包括连接)。

顺便说一句,在VB中,这是

Using connection As SqlConnection = New SqlConnection(connectionString)) 
... 
End Using 
相关问题