有没有办法关闭池中SqlClient提供程序的所有连接

时间:2009-12-24 03:13:46

标签: .net sql-server ado.net

我想关闭SqlClient连接池中的所有空闲连接。是否有记录的方法来执行此操作?

问题在于,作为此应用程序(测试工具)的正常处理的一部分,我需要删除数据库并在每个测试场景的开始时重新创建它。显然我不能使用活动连接删除数据库(从Sql Server的角度来看,不是客户端)

2 个答案:

答案 0 :(得分:1)

一般来说,没有。特定的数据库提供者可以提供这样做的方法。 SqlClient通过SqlConnection.ClearPool和SqlConnection.ClearAllPools提供了类似的功能 - 但这些功能不会关闭任何打开的连接,它们只清除已返回池的连接。

答案 1 :(得分:0)

这没有真正的理由。如果您需要执行此操作,则可能表示您在应用程序中的其他位置发生泄漏,并应尝试找出您未正确处理连接的位置。

FWIW,我认为没有办法一直为所有提供商做这件事,但根据我上面提到的,应该没有需要来做到这一点。