在我的Web服务中,我连接到Sybase数据库。
我有医生名单,每位医生都可以与多家医院联系。我需要更新医生工作的每家医院的一些细节。
对于每位医生,都会打开一个新的数据库连接。对于列表中的每位医生,我首先获得DbReader中的医院列表,然后在读者的每个医院进行操作。处理完DbReader中的所有记录后,我将连接器与连接器一起关闭。 (这是因为我将System.Data.CommandBehavior.CloseConnection
传递给ExecuteReader()
类的Sybase.Data.AseClient.AseCommand
方法
现在,如果医生数量超出某个限度,我会收到错误,因为打开的连接数量变得非常大。
我可以在这种情况下使用哪种不同方法来消除错误?如何知道客户端的开放连接数?
我可以做的一件事是 - 在关闭之前的连接之前不要打开新连接。但是这种方法并不是那么好(我认为),因为虽然允许多个连接,但我一次只能连接一个。
答案 0 :(得分:3)
为什么不使用连接池?或者实现一个singleton connectionmanager,只要没有达到限制就会提供新的连接。
此外,您确定在这种情况下需要Multiconnection吗?听起来你必须为每个医生运行相同的过程。所以你可以在循环中完成它,猜猜一个连接就足够了。