C# 数据库查询后释放资源的问题
答案:6 悬赏:70 手机版
解决时间 2021-03-06 00:34
- 提问者网友:呐年旧曙光
- 2021-03-05 14:21
我是个新手,用C#编一个小软件,软件正常运行时占用大概25兆的内存,但是当我用软件查询数据库某表的数据并显示在datagridview上时,软件的内存变成了60多兆,(查询了大概1000多调数据),请问给位有什么方法可以把内存都释放掉?
最佳答案
- 五星知识达人网友:酒安江南
- 2021-03-05 14:31
C#是自动管理内存的. 你不用DataGridView的时候就将它赋值为null. 然后系统会自动回收内存的.
全部回答
- 1楼网友:末日狂欢
- 2021-03-05 17:21
即使是数据库服务器和程序都在一台机器上 也不应该增加这么多啊
除非数据库用的是oracle,缓冲pool设置的比较大
因为控件是datagridview可见是win form程序
就排除了页面编译后缓存问题
那注意一下,在查询程序中finally里面把connection close了
datagridview的数据源的table是查询的时候生成的,而不是自己一行行的写的吧?
- 2楼网友:底特律间谍
- 2021-03-05 17:04
你所说的空值是,null吗?还是别的,比如dbnull之类的,
==null就一定得是null 才会相等啊,
sring.empty 可不等于null ,但它等于""
- 3楼网友:走死在岁月里
- 2021-03-05 16:40
SqlDataReader sdr1 = com1.ExecuteReader();
操作完后一定要
sdr1.Close();
后边的
sqlconnection con
同样
con.Close();
试一试。。。。
- 4楼网友:迷人又混蛋
- 2021-03-05 15:41
和数据库没关系啊。
是不是数据库和软件同台服务器上,那就用好关掉。
你看看有没有重复创建,多余创建的对象
如果没有,那也没办法,不过一般1000多条数据没这么多的
真有这么大也没办法,等GC来回收吧
- 5楼网友:几近狂妄
- 2021-03-05 14:50
查询完毕就close啊
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯