社区
C#
帖子详情
关于连接的close和dispose的区别
stardqs
2005-12-01 11:40:02
数据库连接的close()和dispose()这两个方法有什么区别区别啊?
为什么我dispose()后还可以close()啊??dispose()为什么没关闭连接呢?
哪位老大可以解释下吗?
...全文
278
4
打赏
收藏
关于连接的close和dispose的区别
数据库连接的close()和dispose()这两个方法有什么区别区别啊? 为什么我dispose()后还可以close()啊??dispose()为什么没关闭连接呢? 哪位老大可以解释下吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hainang1234
2005-12-02
打赏
举报
回复
所以不难看出,Close和Dispose都是用来释放非托管资源。
而且MSDN中有记载,Close方法是平稳执行的,即就算你调用多次,也不会抛出异常。
hainang1234
2005-12-02
打赏
举报
回复
看看SqlConnection的Dispose源码吧:
//SqlConnection
protected override void Dispose(bool disposing)
{
if (disposing)
{
switch (this._objectState)
{
case ConnectionState.Open:
{
this.Close();
break;
}
}
this._constr = null;
}
base.Dispose(disposing);
}
/*你是调用的Dispose();当然不是Dispose(bool);你调用的是基类Component.Dispose();*/
//Component
public void Dispose()
{
this.Dispose(true);
GC.SuppressFinalize(this);
}
mark44404
2005-12-02
打赏
举报
回复
调用Dispose方法并不会释放对象在托管堆中占用的内存,释放对象内存的工作仍由垃圾收集器负责,而且释放的时间仍不确定,Dispose,Close,Finalize都是一样的。原因是他们并不控制托管堆中对象所使用的内存的生存期,也就是说我们执行那些方法后,仍然可以调用对象上的方法。
spiderman111
2005-12-01
打赏
举报
回复
public void SqlConnectionHereAndGone()
{
SqlConnection myConnection = new
SqlConnection("Initial Catalog=Northwind;Data Source=localhost;Integrated Security=SSPI;");
myConnection.Open();
//Calling Dispose also calls SqlConnection.Close.
myConnection.Dispose();
}
垃圾回收器并不会马上回收,概念上是一样的
探讨C#中
Dispose
方法与
Close
方法的
区别
详解
(这里用using或许更好)当我们开发C#代码的时候,经常碰到一个问题,有些class提供
Close
(),有些class提供
Dispose
(),那么
Dispose
和
Close
到底有什么
区别
? 在这里,要明确一下C#程序(或者说.NET)中的资源。简单的...
asp.net sqlconnection con.
close
和con.
dispose
区别
con.
close
() 是关闭
连接
,实际上是把
连接
放回ado.net的
连接
池,并没有真正关闭,所以再次
连接
时只是把
连接
... 您可能感兴趣的文章:C#基础:
Dispose
()、
Close
()、Finalize()的
区别
详解探讨C#中
Dispose
方法与
Close
方法的
区别
c#关闭SQL数据库的两种方式测试
c#使用
Close
方法和
Dispose
方法关闭SQL数据库后再次使用Open方法
连接
数据库的一个测试
ADO.NET
连接
池示例
当我们调用
Close
或者
Dispose
方法时,实际并不断开
连接
,而是把
连接
放回
连接
池,再次使用时候重
连接
池中取得空闲资源。因为打开和关闭数据库
连接
开销比较大,所以
连接
池对于与数据库链接资源的控制上,加快客户端程序...
DBHelper方便
连接
数据库 DBHelper
connection.
Close
(); connection.Open(); } return connection; } } public static int ExecuteCommand(string safeSql) { SqlCommand cmd = new SqlCommand(safeSql, Connection); int result = cmd....
C#
110,499
社区成员
642,576
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章