我不明白常规连接和连接池之间的语法差异是什么。
当我使用using键时,例如:
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
command.ExecuteNonQuery();
}这是执行连接池的方式吗?
发布于 2011-03-09 18:07:13
您可以阅读有关连接池here的内容。
基本上,只要连接字符串相同(包括大小写),就会从相同的连接池获取连接。
发布于 2011-03-09 18:15:37
您不能使用连接而是使用连接字符串来控制连接池。大多数ADO提供程序默认使用池化。
using语句用于调用对象的Dispose方法(在本例中为connection类)。通过这样做,连接要么返回到池,要么被断开,具体取决于连接字符串配置。
您还应该注意,如果使用分布式事务( .Net 4中的TransactionScope),则连接不会直接返回到池中。当事务完成/回滚时,将返回连接。
如果你没有使用using,你应该尽快调用 Connection.Close()。尤其是当您的应用程序处于某种形式的负载下时。
发布于 2011-03-09 18:18:32
连接池的管理是通过使用SqlConnection抽象出来的,就像上面提到的那样。默认情况下,在ADO.NET中,连接池是打开的,您可以进一步控制它,例如关闭它或在连接字符串中控制池大小。
关上
Provider=SQLOLEDB;Data Source=localhost;Integrated Security=SSPI;Pooling=false;或者控制最小和最大值
Provider=SQLOLEDB;Data Source=localhost;Integrated Security=SSPI;Min Pool Size=5; Max Pool Size=20;更多详细说明和验证池http://www.codeproject.com/KB/dotnet/ADONET_ConnectionPooling.aspx的方法
https://stackoverflow.com/questions/5244126
复制相似问题