使用相同的ConnectionString打开两个SQLConnection

时间:2011-12-19 14:54:30

标签: c# .net sql-server sqlconnection

我正在追踪我自己没有写过的图书馆中的错误。在ASP.NET中使用此库时,我得到数据库连接错误,因为当使用相同的连接字符串打开第二个连接时,SQLConnection似乎已关闭。

这是记录在案的行为吗?可以用相同的连接字符串打开一个新的SQLConnection来关闭另一个SQLConnection对象吗?

从调试看来,这似乎是我遇到问题的最可能原因,但我在网上找不到任何支持我的理论的东西。

3 个答案:

答案 0 :(得分:3)

不会,当您调用SqlConnection.Open()方法时,即使使用相同的连接字符串参数,它也会执行以下两种操作之一:从池中重用未使用的连接,或者创建新的连接。无论哪种方式,您都将导致SQL Server的非冲突SPID。

答案 1 :(得分:3)

  

这是记录在案的行为吗?

没有

  

可以用相同的连接字符串打开一个新的SQLConnection,关闭另一个SQLConnection对象吗?

没有

请注意,除非您修改了设置,否则SQL Server允许32,767个并发连接。但即便如此,这也不能解释你所看到的行为。

答案 2 :(得分:0)

简而言之,使用相同的连接字符串打开新连接不会关闭现有连接。但是......通过创建对新连接的新引用来重用已存在的对象将破坏连接。