Foxtable(狐表)用户栏目专家坐堂 → mysql连接内存释放


  共有2776人关注过本帖树形打印复制链接

主题:mysql连接内存释放

帅哥哟,离线,有人找我吗?
z769036165
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:758 积分:5408 威望:0 精华:0 注册:2012/10/5 21:53:00
  发帖心情 Post By:2018/9/5 16:15:00 [只看该作者]

跟我现在在窗口关闭后执行一样的结果,内存是减少了一点点,但是还是在增大

之前的错误是已经在窗口关闭后执行过一次了,再次执行报的错。
[此贴子已经被作者于2018/9/5 16:20:22编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  12楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/9/5 16:53:00 [只看该作者]

以下是引用z769036165在2018/9/5 16:15:00的发言:
跟我现在在窗口关闭后执行一样的结果,内存是减少了一点点,但是还是在增大

之前的错误是已经在窗口关闭后执行过一次了,再次执行报的错。
[此贴子已经被作者于2018/9/5 16:20:22编辑过]

 

那就没办法了。 .net的垃圾内存回收不会实时的。


 回到顶部
帅哥哟,离线,有人找我吗?
z769036165
  13楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:758 积分:5408 威望:0 精华:0 注册:2012/10/5 21:53:00
  发帖心情 Post By:2018/9/5 16:58:00 [只看该作者]

这个内存回收真头疼,用着用着就内存溢出了

 回到顶部
帅哥哟,离线,有人找我吗?
z769036165
  14楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:758 积分:5408 威望:0 精华:0 注册:2012/10/5 21:53:00
  发帖心情 Post By:2018/9/5 17:01:00 [只看该作者]

怎么获取当前运行的程序内存占用?做个判断,内存过高时提示重新关闭进程打开

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  15楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/9/5 17:20:00 [只看该作者]

那试试

 

vars("ds").Tables("TableTemp1").dispose

 

如果还有问题,你就要改一下思路:定义一个总的dataset,MySQLDataAdapter,所有表格都放到整个dataset里面,不需要每次都重新获取,直接冲dataset里面取出来。


 回到顶部
帅哥哟,离线,有人找我吗?
z769036165
  16楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:758 积分:5408 威望:0 精华:0 注册:2012/10/5 21:53:00
  发帖心情 Post By:2018/9/6 8:57:00 [只看该作者]

我发现不需要进行
'e.form.controls("Table2").Table.DataSource = ds1.Tables("TableTemp1") '把刚才的临时表TableTemp填充到我们的控件Table1里

我们直接从TableTemp1取值不就可以了么?
For Each dr As System.Data.DataRow In ds1.Tables("TableTemp1").Rows

Next
这样在临时表里面使用会回收内存

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  17楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/9/6 9:02:00 [只看该作者]

1、你一行一行赋值,效率是很低的;

 

2、e.form.controls("Table2").Table.DataSource 在你关闭窗口的时候,你可以赋值为 Tables("表A"),不是也行?

 

3、主要是你要把dataset的内容dispose,然后回收,即可的。


 回到顶部
帅哥哟,离线,有人找我吗?
z769036165
  18楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:758 积分:5408 威望:0 精华:0 注册:2012/10/5 21:53:00
  发帖心情 Post By:2018/9/6 15:39:00 [只看该作者]

我只是为了查询里面某条最新的信息,这样就比较少了
Dim drs() As System.Data.DataRow = ds.Tables("TableTemp").Select("****")
If drs.GetUpperBound(0)+1 > 0 Then  'select条件查询结果只有一条
      For Each dr As System.Data.DataRow  In drs 
          MessageBox.Show(dr("指定列"))
       Next
End If
[此贴子已经被作者于2018/9/6 15:41:15编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  19楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/9/6 15:46:00 [只看该作者]

回复18楼,根据你的需要来吧,如果你测试这样可以,那就行。

 

 


 回到顶部
总数 19 上一页 1 2