Foxtable(狐表)用户栏目专家坐堂 → 求助:采用二进制文件上传图片,只要是JPG就报错


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

主题:求助:采用二进制文件上传图片,只要是JPG就报错

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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
求助:采用二进制文件上传图片,只要是JPG就报错  发帖心情 Post By:2015/4/8 21:20:00 [只看该作者]

求助:采用二进制文件上传图片,只要是JPG就报错

 
图片点击可在新窗口打开查看此主题相关图片如下:33333.jpg
图片点击可在新窗口打开查看

Dim pbx As WinForm.PictureBox = Forms("物料信息").Controls("PictureBox1")
If e.Sender.ComboList = ""
    Return
End If
If Tables("物料信息").Current Is Nothing Then
    pbx.Image = Nothing
Else
    '  判断选择的是不是  图片格式,如果不是  则不执行代码   
    Dim dt As DataRow = DataTables("物料附件").SQLFind("附件内容='" & e.Sender.SelectedItem & "' and 物料编码='" & Tables("物料信息").Current("物料编码") & "'")   
    If dt IsNot Nothing '必须要判断不然  报错
        Dim nm() As String = e.Sender.SelectedItem.split(".")
        Dim tpjh As String = "bmp,jpg,png,gif"
        If tpjh.Contains(nm(nm.Length-1)) Then '如果是图片格式则显示           
            pbx.Image = dt.SQlLoadImage("附件内容") '从后台提取照片并显示
        Else
            pbx.Image = Nothing
        End If
    End If
End If

Dim lbx As WinForm.ListBox = e.Form.Controls("ListBox1")
Dim dr As DataRow = DataTables("物料附件").Find("附件内容='" & lbx.SelectedItem & "' and 物料编码='" & Tables("物料信息").Current("物料编码") & "'")
Dim fl As String =  ProjectPath & "附件\" & lbx.SelectedItem

 


图片点击可在新窗口打开查看此主题相关图片如下:111111111.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:1111222.jpg
图片点击可在新窗口打开查看

 

 

 

 


[此贴子已经被作者于2015/4/9 9:53:58编辑过]

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/4/9 8:43:00 [只看该作者]

检查你数据库的类型是否二进制类型

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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(Bin)检查你数据库的类型是否二进制类型  发帖心情 Post By:2015/4/9 9:04:00 [只看该作者]

 改后出错如下: 

.NET Framework 版本:2.0.50727.6419
Foxtable 版本:2014.11.11.1
错误所在事件:窗口,物料信息,Button11,Click
详细错误信息:
值类型与列类型不匹配不能在 附件内容 列中存储 <11112.jpg>。所需类型是 Byte[]。
值类型与列类型不匹配


此主题相关图片如下:111111111111111111.jpg
按此在新窗口浏览图片

 

 .NET Framework 版本:2.0.50727.6419
Foxtable 版本:2014.11.11.1
错误所在事件:窗口,物料信息,Button11,Click
详细错误信息:
列“附件内容”不属于表 物料附件。


此主题相关图片如下:222222222222222222.jpg
按此在新窗口浏览图片

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2015/4/9 9:09:00 [只看该作者]

错误告诉你,附件内容不存在,搜索代码中“附件内容”,就知道问题在于:

 

Dim lbx As WinForm.ListBox = e.Form.Controls("ListBox1")
Dim dr As DataRow = DataTables("物料附件").Find("附件内容='" & lbx.SelectedItem & "' and 物料编码='" & Tables("物料信息").Current("物料编码") & "'")
Dim fl As String =  ProjectPath & "附件\" & lbx.SelectedItem

 

因为附件内容是二进制列,这一列是没有加载到DataTable的。

 

 

其实这种问题,到你这个程度,应该可以很轻松地解决的哦,直接用这个方法找出出错的代码:

http://www.foxtable.com/help/topics/1485.htm

马上就知道原因了。

 


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2015/4/9 9:13:00 [只看该作者]

还有附件内容是二进制列,存储的是文件,岂能和字符型进行比较?

你要比较,也是比较附件名称列吧,你本意不就是用附件名称存储文件名,用二进制列存储文件内容吗?

 

建议你先看一下:

http://www.foxtable.com/help/topics/2958.htm

 

[此贴子已经被作者于2015/4/9 9:13:24编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(狐狸爸爸)还有附件内容是二进制列,存储的是...  发帖心情 Post By:2015/4/9 9:51:00 [只看该作者]

谢谢 狐狸爸爸 确实是出现了错误  现在已经纠正了  再次谢谢!

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2015/4/9 9:53:00 [只看该作者]

不客气,解决就好。

 

图片点击可在新窗口打开查看


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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(狐狸爸爸)不客气,解决就好。 [em7...  发帖心情 Post By:2015/4/9 14:28:00 [只看该作者]

狐狸爸爸 继续请教一个问题

 

采用二进制进行保存的图片文件 怎么在WROD报表或者EXCEL报表中进行引用呢?比如要将第一张图打印出来  求解!


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/4/9 14:30:00 [只看该作者]


 回到顶部