| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 677 人关注过本帖
标题:析构函数
只看楼主 加入收藏
hhy420459674
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:203
专家分:179
注 册:2010-4-9
结帖率:54.9%
收藏
已结贴  问题点数:15 回复次数:5 
析构函数
我在后台代码中写了构造函数和析构函数,请问各位,怎么我写了后就程序运行页面都打不开了呢?

构造函数中:我连接了数据库  析构函数中:我关闭了数据库连接

在各个事件或者方法中我就没有再连接和关闭了...

请问那是怎么回事??
搜索更多相关主题的帖子: 函数 
2010-05-26 10:06
冰镇柠檬汁儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:北京
等 级:版主
威 望:120
帖 子:8078
专家分:6657
注 册:2005-11-7
收藏
得分:15 
析构函数,好遥远的年代的名词了,在C#里应该叫析构方法吧,呵呵
数据库打开和关闭的方法应该单独写一个,而不是写在构造方法和析构方法中,你可能认为这样我在定义一个类的对象的时候打开了数据库,而对象消失的时候就关闭了数据库,可是我问你,你如果在一个页面内定义了类的对象,只要这个页面不关闭,对象就不会消失,那么数据库连接就会一直被这个页面占据,数据库连接数量有限,更多的人访问时就会造成无法连接数据库,你这也写,就占用了数据库连接而不关闭。
如果你用的是net 2005以上的版本,你就只需要open就可以了,至于close,NET自己就能替你管理,不用你操心。

[ 本帖最后由 冰镇柠檬汁儿 于 2010-5-27 10:22 编辑 ]

本来无一物,何处惹尘埃
It is empty at all here, Why pm 2.5 is so TMD high!
2010-05-27 10:15
hhy420459674
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:203
专家分:179
注 册:2010-4-9
收藏
得分:0 
.Net自己给我管理啊?那我不用写con.Close()代码了哦,不会吧??
2010-05-27 11:26
冰镇柠檬汁儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:北京
等 级:版主
威 望:120
帖 子:8078
专家分:6657
注 册:2005-11-7
收藏
得分:0 
是的,并且即使你写了close,它也不给你关,实际上net2.0以上的版本采用了数据库连接池技术,来管理数据库连接,但是出于好的编码习惯来说,还是写close的。

本来无一物,何处惹尘埃
It is empty at all here, Why pm 2.5 is so TMD high!
2010-05-27 12:06
冰镇柠檬汁儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:北京
等 级:版主
威 望:120
帖 子:8078
专家分:6657
注 册:2005-11-7
收藏
得分:0 
但是,楼主你要是把open写在构造方法里,那就不一样了,不到对象消失,net是不会替你管理的

本来无一物,何处惹尘埃
It is empty at all here, Why pm 2.5 is so TMD high!
2010-05-27 12:08
hhy420459674
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:203
专家分:179
注 册:2010-4-9
收藏
得分:0 
  知道了 谢谢!
2010-05-27 15:02
快速回复:析构函数
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.086112 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved