与数据库的大量打开连接会使应用程序崩溃

时间:2011-03-09 11:23:18

标签: c# .net ado.net sybase-ase

在我的Web服务中,我连接到Sybase数据库。

我有医生名单,每位医生都可以与多家医院联系。我需要更新医生工作的每家医院的一些细节。

对于每位医生,都会打开一个新的数据库连接。对于列表中的每位医生,我首先获得DbReader中的医院列表,然后在读者的每个医院进行操作。处理完DbReader中的所有记录后,我将连接器与连接器一起关闭。 (这是因为我将System.Data.CommandBehavior.CloseConnection传递给ExecuteReader()类的Sybase.Data.AseClient.AseCommand方法

现在,如果医生数量超出某个限度,我会收到错误,因为打开的连接数量变得非常大。

我可以在这种情况下使用哪种不同方法来消除错误?如何知道客户端的开放连接数?

我可以做的一件事是 - 在关闭之前的连接之前不要打开新连接。但是这种方法并不是那么好(我认为),因为虽然允许多个连接,但我一次只能连接一个。

1 个答案:

答案 0 :(得分:3)

为什么不使用连接池?或者实现一个singleton connectionmanager,只要没有达到限制就会提供新的连接。

此外,您确定在这种情况下需要Multiconnection吗?听起来你必须为每个医生运行相同的过程。所以你可以在循环中完成它,猜猜一个连接就足够了。