什么SQL连接对象是什么,当我们打开/关闭时会发生什么?它消耗了什么资源?为什么需要处理它(以c#/。net的形式)?什么是SQL连接
什么是SQL连接
回答
SqlConnection: 看看the MSDN page for SqlConnection。声明:
SqlConnection对象表示SQL Server的唯一会话 数据源。使用客户端/服务器数据库系统时,它相当于 到服务器的网络连接。
SqlConnection.Open:在MSDN page on SqlConnection.Open,它指出:
关闭SqlConnection吸引了来自连接池打开的连接,如果 一个是可用的。否则,它建立到SQL Server实例的新连接。
SqlConnection.Close(和处置):
The MSDN page on SqlConnection.Close说:
Close方法回滚任何未决的事务。然后它释放到连接池的连接,或者在连接池被禁用时关闭连接。
此外,在SqlConnection的页面则指出:
如果的SqlConnection超出范围,它不会被关闭。因此,您必须通过调用Close或Dispose来显式关闭连接。 Close和Dispose在功能上是等效的。如果连接池值Pooling设置为true或yes,则将底层连接返回到连接池。另一方面,如果将Pooling设置为false或否,则与服务器的底层连接实际上是关闭的。
和:
为了确保连接总是关闭,打开一个使用块的内部的连接,如图所示在下面的代码片段。这样做可确保在代码退出块时连接会自动关闭。
这应该回答你的问题。
编辑: 欲了解更多信息(也见于您的评论),您可以阅读Connection-Pooling,当然也可以查看source code SqlConnection。
感谢您的回答,@ tobypls。在“编辑”部分中的这两个最后的链接正是我必须找到自己,但不知道如何制定我想获得答案的问题。 – 2014-10-01 10:31:40
Okey太棒了!如果我的回答中包含您正在搜索的内容,请不要忘记将其标记为已接受。 – tobypls 2014-10-01 10:36:31
所以实际上这个答案可以总结为:rtfm ;-) – 2014-10-01 10:49:27
Sql连接对象,我们使用属于System.Data.SqlClient命名空间的Sql连接类创建的对象。我们使用Sql Connection对象在sql server数据库中执行sql命令。
Close和Dispose是两个不同的东西。如果您关闭它,您可以重新使用该连接,但在处理之后不能重新连接。
在您需要之前打开连接并在完成您的需求后关闭连接总是一个好习惯。
在c#中,如果使用“using”语句创建连接,将会处理连接。
- 1. SQL连接还是什么?
- 2. 这是什么样的SQL连接?
- 3. 连接sql server和asp.net的连接字符串是什么?
- 4. 什么是超过SQL连接OLEDB连接的优点
- 5. 什么是内连接?
- 6. 什么是可信连接?
- 7. 什么是连接池?
- 8. 什么是RMI TCP连接
- 9. 连接池什么是removeAbandoned?
- 10. 什么是连接到另一个SQL Server的T-SQL语法?
- 11. MySQL,什么是SQL接口?
- 12. 什么是oledb连接连接DSN的连接字符串
- 13. 什么是直接连接在Sqoop
- 14. CakePHP为什么不使用SQL连接
- 15. 我需要什么SQL连接?
- 16. 我的sql连接有什么问题?
- 17. 为什么global.asax更改sql连接?
- 18. 连接到web.config中的SQL Server数据库的连接字符串是什么?
- 19. 连接到SQL Server Express - 我的服务器名称是什么?
- 20. SQL Server连接字符串中“Initial Catalog”的含义是什么?
- 21. 用于连接字符串的SQL用户是什么?
- 22. 什么是T-Sql连接的'旧式'语法?
- 23. SQL连接或PHP循环?或者是什么?
- 24. 什么是SPID和SQL Server的连接之间的关系?
- 25. 变为空。什么是sql连接和会话的关系
- 26. 如何使用PHP7连接到SQL Server? (我是什么失踪?)
- 27. 什么是Linq等同于带有OR连接的SQL查询?
- 28. 什么是SQL Server连接字符串中的“复制”键?
- 29. SQL Server 2012默认实例的连接字符串是什么?
- 30. LINQ to SQL中的内部连接的语法是什么?
你读过MSDN(尤其是备注部分)吗? http://msdn.microsoft.com/en-us/library/System.Data.SqlClient.SqlConnection(v=vs.110).aspx你还应该阅读所有关于[连接池](http:// msdn。 microsoft.com/en-us/library/8xx3tyca(v=vs.110).aspx)。 – 2014-10-01 10:04:51
没什么比查看源代码[SqlConnection.cs](http://referencesource.microsoft.com/#System.Data/data/System/Data/SqlClient/SqlConnection.cs)好运 – Steve 2014-10-01 10:06:34
@tim是的,我有。文章只是说“这是一个代表会议的对象”。它是如何做到的?这个对象内部发生了什么?请不要发送给我谷歌 - 我一直在那里,我也一直在SO搜索引擎。 – 2014-10-01 10:08:33