首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.net连接池

.net连接池
EN

Stack Overflow用户
提问于 2011-03-09 18:03:46
回答 5查看 95K关注 0票数 21

我不明白常规连接和连接池之间的语法差异是什么。

当我使用using键时,例如:

代码语言:javascript
复制
using (SqlConnection connection = new SqlConnection(connectionString))
{
    connection.Open();
    command.ExecuteNonQuery();
}

这是执行连接池的方式吗?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-03-09 18:07:13

您可以阅读有关连接池here的内容。

基本上,只要连接字符串相同(包括大小写),就会从相同的连接池获取连接。

票数 35
EN

Stack Overflow用户

发布于 2011-03-09 18:15:37

您不能使用连接而是使用连接字符串来控制连接池。大多数ADO提供程序默认使用池化。

using语句用于调用对象的Dispose方法(在本例中为connection类)。通过这样做,连接要么返回到池,要么被断开,具体取决于连接字符串配置。

您还应该注意,如果使用分布式事务( .Net 4中的TransactionScope),则连接不会直接返回到池中。当事务完成/回滚时,将返回连接。

如果你没有使用using,你应该尽快调用 Connection.Close()。尤其是当您的应用程序处于某种形式的负载下时。

票数 23
EN

Stack Overflow用户

发布于 2011-03-09 18:18:32

连接池的管理是通过使用SqlConnection抽象出来的,就像上面提到的那样。默认情况下,在ADO.NET中,连接池是打开的,您可以进一步控制它,例如关闭它或在连接字符串中控制池大小。

关上

代码语言:javascript
复制
Provider=SQLOLEDB;Data Source=localhost;Integrated Security=SSPI;Pooling=false;

或者控制最小和最大值

代码语言:javascript
复制
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的方法

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5244126

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档