以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [原创]怎样实现二进制图片列的读取  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=18081)

--  作者:cqmeiyan
--  发布时间:2012/4/1 13:35:00
--  [原创]怎样实现二进制图片列的读取

我现在做一个程序,因为数据库结构是引用原来他们的数据库,所以不能修改图片列的格式

 

想问问有没有其它方法,用代码把二进制图片存成图片文件后,再用picturebox读出?


--  作者:狐狸爸爸
--  发布时间:2012/4/1 14:02:00
--  

看看这个对你有没有用:

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=8059&skin=0

 


--  作者:cqmeiyan
--  发布时间:2012/4/6 16:15:00
--  

我试了,可以调出图片了

 

但是还有个问题,可能是狐表不兼容 VB.NET语句造成的

 

问题就是,当二进制列为空值时,用VB.NET的语句无法判断(在VB.NET里是可能正常使用的)

 

烦请狐爸爸帮我看看呢,这个怎么处理呀,这个急呀,因为数据库是既有的数据库,不能改人家的数据库呀

 

Dim dt As DataTable=cmd.executereader

If Trim(dt.dataRows(0)("xx_front").ToString) = "" Then  \'现在在这里没办法判断,不管数据列是否为空,这里得到的都不是空值

    Return
End If


Dim imageByte() As Byte = dt.DataRows(0)("xx_front") \'所以不管值是否为空,都会执行到这里,而到这里就会提示出错

messagebox.Show (imageByte.length)

If imageByte.length > 0 Then
    Dim ms As New IO.MemoryStream(imageByte)       \'将字节数组转换为二进制流
    Dim image As Image = Image.FromStream(ms)      \'将二进制流转换为图片
    Forms(frmname).Controls("PictureBox1").image = image      \'显示图片
End If

 

 

出错提示为:

索引超出了数组界限(无法插入图片)


--  作者:狐狸爸爸
--  发布时间:2012/4/6 16:25:00
--  

非官方代码,没有办法支持。

我看看能够抽空做个官方的例子写入帮助。


--  作者:cqmeiyan
--  发布时间:2012/4/6 16:43:00
--  

就这个问题了,我现在就卡在这里呀

 

如果图片列有存图片的,就能正常调出,如果图片列为空时,就会报错,怎么都截取不到,我晕

 

(我试试用 TRY 看看行不行 )

 

还请狐爸抽空帮忙写一个嘛

 

拜托了!!!


--  作者:lihe60
--  发布时间:2012/4/7 8:07:00
--  

SQL有一个IMAGE列,狐表可否也增加一个image类型列?

用于存放图片和文件。

[此贴子已经被作者于2012-4-7 8:16:11编辑过]