并不是没有关闭connection,但是还System.InvalidOperationException: 超时时间已到。

来源:百度知道 编辑:UC知道 时间:2024/09/23 11:50:15
异常详细信息: System.InvalidOperationException: 超时时间已到。在从池中获取连接之前超时时间已过。出现这种情况可能是因为所有池连接都已被使用并已达到最大池大小。

我是用的datareader,但是专门编写了一个类来访问数据库,每执行完语句都close了connection和datareader的。

出现错误的时候,我在SQL企业管理器中查看当前活动进程,也才一两个,连接数根本没满啊????!!!!却还是出现这个问题

网上查看了一些帖子,基本上都是因为没有关闭connection datareader,但是我关闭了的呀。

那位大牛帮帮忙,现在都不知道怎么弄了
To aries1001: 正常情况下一般及时的close掉datareader和connection吧,非要dispose这么极端么?那样的话每操作一次就要对connection重新给连接字符串,我要改起程序来就麻烦有点大了

server=.;uid=sa;pwd=;database=数据库;Max Pool Size=512
连接字符串写成这样或许可以解决.但是这个方法我没用.

还有个问题需要楼主注意,并不是你关闭SqlDataReader就真的关闭了,有时出现错误,dr.Close();会执行不到,不用我举例子了吧.

------------------------------------------
关闭了但没释放吧.
connection.Dispose();

或你让该类继承System.IDisposable接口,强迫释放资源,这样就不会出现连接数量不够的问题了。

你另写一个简单程序,测试一下连接数据库是否正常。
先看看是数据库问题,还是你代码问题