以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  求助:采用二进制文件上传图片,只要是JPG就报错  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=66528)

--  作者:李孝春
--  发布时间:2015/4/8 21:20:00
--  求助:采用二进制文件上传图片,只要是JPG就报错

求助:采用二进制文件上传图片,只要是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
--  发布时间:2015/4/9 8:43:00
--  
检查你数据库的类型是否二进制类型
--  作者:李孝春
--  发布时间:2015/4/9 9:04:00
--  回复:(Bin)检查你数据库的类型是否二进制类型

 改后出错如下: 

.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
按此在新窗口浏览图片

--  作者:狐狸爸爸
--  发布时间: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

马上就知道原因了。

 


--  作者:狐狸爸爸
--  发布时间:2015/4/9 9:13:00
--  

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

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

 

建议你先看一下:

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

 

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

--  作者:李孝春
--  发布时间:2015/4/9 9:51:00
--  回复:(狐狸爸爸)还有附件内容是二进制列,存储的是...
谢谢 狐狸爸爸 确实是出现了错误  现在已经纠正了  再次谢谢!
--  作者:狐狸爸爸
--  发布时间:2015/4/9 9:53:00
--  

不客气,解决就好。

 

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


--  作者:李孝春
--  发布时间:2015/4/9 14:28:00
--  回复:(狐狸爸爸)不客气,解决就好。 [em7...

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

 

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


--  作者:Bin
--  发布时间:2015/4/9 14:30:00
--  
http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=66559