回答
我建议你离开请求缓存独自处理ADO.NET连接并使用connection pooling(这是默认值)。只要你想在任何地方做到这一点,它会正确关闭/处置:
using (SqlConnection cn = new SqlConnection(connectionString))
{
using (SqlCommand cm = new SqlCommand(commandString, cn))
{
cn.Open();
cm.ExecuteNonQuery();
}
}
我会认为@Downvoter正在打我,原因与@LukeH相同。你为什么不发表一个答案,因为你是如此重要? – 2010-07-12 15:57:34
我会强烈建议您不把首先在缓存中的连接。
只要您需要连接,只需打开一个新连接(尽可能晚)。完成后只需关闭/处理(尽可能早)。您可能知道确保此行为的最简单模式是using
块。
从池中打开和关闭连接非常便宜,默认情况下启用连接池。让连接池处理诸如缓存等细节:这就是它的存在,如果你自己做,它确实没有任何好处 - 并且有很多潜在的缺陷。
@Downvoter:小心解释为什么? – LukeH 2010-07-12 12:43:59
因为这不是回答这个问题,所以网站对它进行了步骤。这就像回答网络服务问题一样,不要使用网络服务,因为糟糕的事情可能会发生。我不能删除这个问题,所以我会重新整理一下。 – MatthewMartin 2010-07-12 15:45:18
@MatthewMartin:如果所有的StackOverflow都回答了人们问的所有*错误的问题(而不是暗示海报可能完全错误地咆哮错误的树),那么它会更糟糕。您不能指责某人尝试帮助您解决与您最初发布的代码有关的严重问题。 – 2010-07-12 15:52:27
- 1. 我应该实现自己的TCP/IP套接字超时吗?
- 2. 我应该使用连接池吗?
- 3. 我们自己实现连接池,但为什么它总是断开连接?
- 4. 我应该存储OpenID的连接方案吗?
- 5. 实现自定义连接池?
- 6. 并发:实现自定义连接池
- 7. 我应该实现writeToParcel方法吗?
- 8. Java连接池实现
- 9. 如何实现连接池?
- 10. 连接池应该比保持连接打开慢得多吗?
- 11. Django应该自己实现DB on_delete规则吗?
- 12. 实现接口方法时,我应该使用@Override标记吗?
- 13. 我应该在自己的EC2实例上运行MongoDB吗?
- 14. 实现我自己的DBGrid
- 15. 我的Doctrine实体应该实现接口吗?
- 16. 连接我自己的glibc
- 17. java中的连接池实现
- 18. 连接池的大小应该与max_connections相同吗?
- 19. 我应该使用第三方电子邮件发送解决方案还是实施我自己的?
- 20. ReactiveMongo:单连接池实例VS很多连接池实例VS多连接池
- 21. 我如何实现这个答案,我发现我自己的编码?
- 22. 如何实现连接到我自己的自定义shell中的远程shell?
- 23. 应该使用哪个连接池?
- 24. SQL - 我应该使用连接吗?
- 25. 如何实现连接池BIRT报表
- 26. 如何高效地实现连接池?
- 27. Ruby/Rails数据库连接池实现
- 28. 如何实现连接池Multi_threading
- 29. 我应该使用.NET的内置双缓冲还是我自己的实现?
- 30. 我应该用Python中的常量接口实现类吗?
什么......?为什么你想要连接到缓存?你是否想要实现连接池? – RPM1984 2010-07-12 12:34:58