Foxtable(狐表)用户栏目专家坐堂 → System.OutOfMemoryException”的异常


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

主题:System.OutOfMemoryException”的异常

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


加好友 发短信
等级:九尾狐 帖子:2466 积分:22761 威望:0 精华:0 注册:2011/3/29 17:14:00
  发帖心情 Post By:2014/9/17 20:37:00 [只看该作者]

好的  今天休息了  明天上例子请教

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


加好友 发短信
等级:九尾狐 帖子:2466 积分:22761 威望:0 精华:0 注册:2011/3/29 17:14:00
  发帖心情 Post By:2014/9/18 10:18:00 [只看该作者]

问题: 
1图片列的内容文件比较大  都在2-5M之间  
 2.在刷新 ListView  图标时会影响效率   
3.在导出EXCEL报表时文件比较大  在导出大量图片时造成内存不足而死机。比如20行正常导出  50  100 就会死机
      
需要解决的问题: 
 
1.导出报表时,需要将图片压缩到指定像素并保存在  D盘\缩略图\ 下   下次导出时检查是否有压缩图如果有 调用           没有产生新的压缩图。

1.生产 ListView 时,需要将图片压缩到指定像素并保存在  D盘\缩略图\ 下   下次生产时检查是否有压缩图如果有 调用      没有产生新的压缩图。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:listview压缩图请教.foxdb

Attachments  文件夹下载地址
提取码 94c1

http://yunpan.cn/Q796dtRhRb4hV  提取码 94c1
[此贴子已经被作者于2014-9-18 10:24:11编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2466 积分:22761 威望:0 精华:0 注册:2011/3/29 17:14:00
  发帖心情 Post By:2014/9/18 10:30:00 [只看该作者]

Attachments  可以下载吗

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


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

 如下,代码写在datacolchanged事件,你拷贝缩略图到D盘即可测试

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:listview压缩图请教.rar


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


加好友 发短信
等级:九尾狐 帖子:2466 积分:22761 威望:0 精华:0 注册:2011/3/29 17:14:00
  发帖心情 Post By:2014/9/18 12:03:00 [只看该作者]

缩略图文件填充无效


If e.DataCol.Name = "产品效果图" Then

    If e.NewValue <> Nothing Then

        Dim file As String = format(dr("日期").Today,"yyyy") & "产品库" & "\" & dr("产品名称") & "\" & "A 效果图片"  & e.NewValue

        Dim img As image = getImage(file)

        Dim bmp As new bitmap(getImage(file), img.width / 20, img.height / 20)

        bmp.save(ProjectPath & "Attachments\缩略图\" & e.NewValue)

        bmp.Dispose  这句不明白意思

    End If

    e.DataRow("效果缩略图") = e.NewValue

End If


是不是下面的代码影响


BeforeAttachFile



Dim dr As DataRow = e.DataRow
If  dr.IsNull("产品名称")  OrElse  dr.IsNull("产品编号")Then
    MessageBox.Show("产品名称, 编号 都不能为空!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    e.Cancel = True
Else
    Select Case e.DataCol.Name
        Case "产品效果图"
            e.SubFolder = format(dr("日期").Today,"yyyy") & "产品库" & "\" & dr("产品名称") & "\" & "A 效果图片"        
    End Select
End If

Dim s As String = e.filename
Dim Index As Integer = s.LastIndexOf(".")
Dim hz As String = s.SubString(Index,s.length-Index)
e.filename=e.DataRow("产品编号") & e.DataRow("产品名称")& hz
[此贴子已经被作者于2014-9-18 12:25:49编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2466 积分:22761 威望:0 精华:0 注册:2011/3/29 17:14:00
  发帖心情 Post By:2014/9/18 12:58:00 [只看该作者]

我注释了这段代码后
还是能生效   而且奇怪的是  随便新增扩展列  都会执行下面的合并代码

Dim s As String = e.filename
Dim Index As Integer = s.LastIndexOf(".")
Dim hz As String = s.SubString(Index,s.length-Index)
e.filename=e.DataRow("产品编号") & e.DataRow("产品名称")& hz

我注释了这段代码后
存储文件还是按照代码位置存储?

Dim dr As DataRow = e.DataRow
If  dr.IsNull("产品名称")  OrElse  dr.IsNull("产品编号")Then
    MessageBox.Show("产品名称, 编号 都不能为空!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    e.Cancel = True
Else
    Select Case e.DataCol.Name
        Case "产品效果图"
            e.SubFolder = format(dr("日期").Today,"yyyy") & "产品库" & "\" & dr("产品名称") & "\" & "A 效果图片"        
    End Select
End If

Dim s As String = e.filename
Dim Index As Integer = s.LastIndexOf(".")
Dim hz As String = s.SubString(Index,s.length-Index)
e.filename=e.DataRow("产品编号") & e.DataRow("产品名称")& hz

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


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

If e.DataCol.Name = "产品效果图" Then

    If e.NewValue <> Nothing Then

        Dim file As String = ProjectPath & "Attachments\"  & e.NewValue

        Dim img As image = getImage(file)

        Dim bmp As new bitmap(getImage(file), img.width / 20, img.height / 20)

        bmp.save("d:\缩略图\" & e.NewValue)

        bmp.Dispose

    End If
    e.DataRow("效果缩略图") = e.NewValue
End If


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


加好友 发短信
等级:九尾狐 帖子:2466 积分:22761 威望:0 精华:0 注册:2011/3/29 17:14:00
  发帖心情 Post By:2014/9/18 14:48:00 [只看该作者]

If e.DataCol.Name = "产品效果图" Then

    If e.NewValue <> Nothing Then

        Dim file As String = ProjectPath & "Attachments\"  & e.NewValue  

                              这句我理解是监控文件的新值   我的文件是放在format(dr("日期").Today,"yyyy") & "产品库" & "\" & dr("产品名称") & "\" & "A 效果图片"这样的路径下,那么监控ProjectPath & "Attachments\"就想不通了意思了

        Dim img As image = getImage(file)

        Dim bmp As new bitmap(getImage(file), img.width / 20, img.height / 20)

        bmp.save("d:\缩略图\" & e.NewValue)

这句要是要保存新生产的压缩图位置,为了方便客户安装时不需要再次复制单独的文件到D盘  我想直接存到  Attachments\缩略图\   安装客户端在里面款且本地调用会速度快些

        bmp.Dispose

    End If
    e.DataRow("效果缩略图") = e.NewValue

End If


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


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

1、自己测试;

 

2、如果要改成 Attachments\缩略图,窗口对应的代码也要改。


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


加好友 发短信
等级:九尾狐 帖子:2466 积分:22761 威望:0 精华:0 注册:2011/3/29 17:14:00
  发帖心情 Post By:2014/9/18 15:37:00 [只看该作者]

Dim d1r As DataRow = e.DataRow
If e.DataCol.Name = "产品效果图" Then
    If e.NewValue <> Nothing Then
        Dim file As String =  Vars("IP2") & "\" & format(d1r("日期").Today,"yyyy") & "产品库" & "\" & d1r("产品名称") & "\" & "A 效果图片" & e.NewValue
        Dim img As image = getImage(file)
        Dim bmp As new bitmap(getImage(file), img.width / 20, img.height / 20)
        bmp.save("Attachments\缩略图\" & e.NewValue)
        bmp.Dispose
    End If
    e.DataRow("效果缩略图") = e.NewValue
End If

-----------------------------------------------------------------------------------


Dim file As String = ProjectPath & "Attachments\"  & e.NewValue  
改成
Dim file As String =  Vars("IP2") & "\" & format(d1r("日期").Today,"yyyy") & "产品库" & "\" & d1r("产品名称") & "\" & "A 效果图片" & e.NewValue  

会有如下报错
.NET Framework 版本:2.0.50727.5485
Foxtable 版本:2014.9.16.1
错误所在事件:表,产品数据库,DataColChanged
详细错误信息:
调用的目标发生了异常。
未将对象引用设置到对象的实例。

Vars("IP2")产品效果图的存放目录IP地址

 format(d1r("日期").Today,"yyyy") & "产品库" & "\" & d1r("产品名称") & "\" & "A 效果图片"     BeforeAttachFile下的动态合成地址

& e.NewValue
怎样才能引用到对象呢?


 回到顶部
总数 31 上一页 1 2 3 4 下一页