SQL连接对象 是什么?当我们打开/关闭它时会发生什么?它消耗了哪些资源以及为什么需要处理它(就c#/ .net而言)?
答案 0 :(得分:2)
<强>的SqlConnection:强> 看看the MSDN page for SqlConnection。据说:
SqlConnection对象表示SQL Server的唯一会话 数据源。使用客户端/服务器数据库系统,它相当于 与服务器的网络连接。
SqlConnection.Open:在MSDN page on SqlConnection.Open中,声明:
如果,SqlConnection从连接池中绘制一个打开的连接 一个是可用的。否则,它建立一个新的连接 SQL Server的实例。
SqlConnection.Close(和Dispose):
The MSDN page on SqlConnection.Close说:
Close方法回滚所有待处理的事务。然后,它会释放与连接池的连接,或者在禁用连接池时关闭连接。
此外,在SqlConnection页面中声明:
如果SqlConnection超出范围,则不会关闭。因此,您必须通过调用Close或Dispose显式关闭连接。关闭和处置在功能上是等效的。如果连接池值Pooling设置为true或yes,则将基础连接返回到连接池。另一方面,如果Pooling设置为false或no,则实际上将关闭与服务器的基础连接。
和
要确保始终关闭连接,请打开using块内部的连接,如以下代码片段所示。这样做可确保在代码退出块时自动关闭连接。
这应该回答你的问题。
编辑: 如需进一步阅读(也可在评论中看到),您可以阅读Connection-Pooling,当然可以查看source code的SqlConnection。
答案 1 :(得分:0)
我们使用属于System.Data.SqlClient命名空间的Sql连接类创建的对象中的Sql Connection对象。我们使用Sql Connection对象在sql server数据库中执行sql命令。
关闭和处理是两回事。如果关闭连接,则可以重复使用连接,但在处理后不能重复使用连接。
在您想要之前打开连接并在满足您的需求后关闭它始终是一个好习惯。
在c#中,如果使用“using”语句创建连接,则将处理连接。