什么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连接OLEDB连接的优点
- 4. 连接sql server和asp.net的连接字符串是什么?
- 5. 什么是SQL Server连接字符串中的“连接超时”?
- 6. 什么是连接字符串Ironpython连接到SQL Server CE?
- 7. 什么是连接池?
- 8. 连接池什么是removeAbandoned?
- 9. 什么是连接methodOverride()
- 10. 什么是RMI TCP连接
- 11. 什么是内连接?
- 12. 什么是m2e连接器?
- 13. 什么是可信连接?
- 14. 什么是连接到另一个SQL Server的T-SQL语法?
- 15. MySQL,什么是SQL接口?
- 16. 什么是oledb连接连接DSN的连接字符串
- 17. 什么是直接连接在Sqoop
- 18. 为什么global.asax更改sql连接?
- 19. 为什么我的SQL连接计时?
- 20. CakePHP为什么不使用SQL连接
- 21. 我的sql连接有什么问题?
- 22. 我需要什么SQL连接?
- 23. 通过SQL Server连接到主数据库的连接字符串是什么
- 24. 连接到web.config中的SQL Server数据库的连接字符串是什么?
- 25. SQL连接和左外连接:为什么结果不同?
- 26. 什么是更简洁的方式来写自我连接SQL
- 27. 连接到SQL Server时数据源的值是什么?
- 28. 什么是不断检查SQL Server连接的标准方法?
- 29. 什么是SQL Server连接字符串中的“复制”键?
- 30. SAS PROC 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