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


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

主题:mysql连接内存释放

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


加好友 发短信
等级:三尾狐 帖子:760 积分:5430 威望:0 精华:0 注册:2012/10/5 21:53:00
mysql连接内存释放  发帖心情 Post By:2018/9/5 11:41:00 [只看该作者]

Dim conn As MySql.Data.MySqlClient.MySqlConnection
Dim cmd As MySql.Data.MySqlClient.MySqlCommand
Dim connStr As String = "server=192.168.1.1; port=3301; user id=root; password=root ; database=test;CharSet=utf8" '设置你的数据库连接字符串,注意我设置了字符编码为utf8,如果你的mysql里有中文字段,读取出来是乱码,就要记得设置mysql里你的字段的字符编码用utf8,这个世界最通用的字符编码格式!
conn = New MySql.Data.MySqlClient.MySqlConnection(connStr)
conn.Open
Dim mda1 As New MySql.Data.MySqlClient.MySQLDataAdapter("SE LECT * from po" , conn) '这里可以设置你的查询语句
Dim ds1 As New System.Data.DataSet()
mda1.Fill(ds1, "TableTemp1") 'MySQLDataAdapter方法把数据放到一个新建的临时表里,这个临时表名可自定义,我这里写TableTemp
e.form.controls("Table1").Table.DataSource = ds1.Tables("TableTemp1") '把刚才的临时表TableTemp填充到我们的控件Table1里
conn.close


请问这个mysql链接读取,在窗口中的读取内存不会释放,有没有办法可以对这个内存进行释放,测试了gc.collect()没有效果。

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


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

试试

 

Dim conn As MySql.Data.MySqlClient.MySqlConnection
Dim cmd As MySql.Data.MySqlClient.MySqlCommand
Dim connStr As String = "server=192.168.1.1; port=3301; user id=root; password=root ; database=test;CharSet=utf8" '设置你的数据库连接字符串,注意我设置了字符编码为utf8,如果你的mysql里有中文字段,读取出来是乱码,就要记得设置mysql里你的字段的字符编码用utf8,这个世界最通用的字符编码格式!
conn = New MySql.Data.MySqlClient.MySqlConnection(connStr)
conn.Open

Using mda1 = New MySql.Data.MySqlClient.MySQLDataAdapter("SE LECT * from po" , conn) '这里可以设置你的查询语句
Dim ds1 As New System.Data.DataSet()
mda1.Fill(ds1, "TableTemp1") 'MySQLDataAdapter方法把数据放到一个新建的临时表里,这个临时表名可自定义,我这里写TableTemp
e.form.controls("Table1").Table.DataSource = ds1.Tables("TableTemp1") '把刚才的临时表TableTemp填充到我们的控件Table1里
conn.close
End Using

 


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


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

还是一样的

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


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

Dim conn As MySql.Data.MySqlClient.MySqlConnection
Dim cmd As MySql.Data.MySqlClient.MySqlCommand
Dim connStr As String = "server=192.168.1.1; port=3301; user id=root; password=root ; database=test;CharSet=utf8" '设置你的数据库连接字符串,注意我设置了字符编码为utf8,如果你的mysql里有中文字段,读取出来是乱码,就要记得设置mysql里你的字段的字符编码用utf8,这个世界最通用的字符编码格式!
conn = New MySql.Data.MySqlClient.MySqlConnection(connStr)
conn.Open
Dim mda1 As New MySql.Data.MySqlClient.MySQLDataAdapter("SE LECT * from po" , conn) '这里可以设置你的查询语句
Dim ds1 As New System.Data.DataSet()
mda1.Fill(ds1, "TableTemp1") 'MySQLDataAdapter方法把数据放到一个新建的临时表里,这个临时表名可自定义,我这里写TableTemp
e.form.controls("Table1").Table.DataSource = ds1.Tables("TableTemp1") '把刚才的临时表TableTemp填充到我们的控件Table1里
conn.close
vars("mda") = mda1
vars("ds") = ds1

 

-----关闭窗口之后

 

vars("mda").dispose
vars("mda") = Nothing
vars("ds").dispose
vars("ds") = Nothing
gc.Collect


 


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


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

好一些了,但是还是不停的在增加,只是增长的值比以前少一半左右,原来打开一次增长60M,现在30~40M左右,会释放一些,网上找了个
System.Diagnostics.Process.GetCurrentProcess().MinWorkingSet = new System.IntPtr(5);这个也没用,看着是少了,但一操作又变回原来的内存大小。

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


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

但是感觉好像后面在打开的时候增加的内存比之前的多了。。。。
[此贴子已经被作者于2018/9/5 15:32:06编辑过]

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


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

你执行4楼第一段代码以后,关闭窗口,再在命令窗口执行第二段代码,也不能释放内存?

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


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

我是放在窗口关闭后执行的,没什么特别大作用

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


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

怎么在命令窗口执行第2段代码啊?不设置全局变量显示未设置对象变量,设置了的话但是全局变量里面类型都与这个不符啊?
[此贴子已经被作者于2018/9/5 15:39:33编辑过]

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


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

以下是引用z769036165在2018/9/5 15:39:00的发言:
怎么在命令窗口执行第2段代码啊?不设置全局变量显示未设置对象变量,设置了的话但是全局变量里面类型都与这个不符啊?
[此贴子已经被作者于2018/9/5 15:39:33编辑过]

 

执行第一段代码后,就可以执行第二段代码的。

 

vars变量可以自动添加的,你没有用最新版foxtable?


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