VB.NET显示ORACLE数据库BLOB类型图片

bfly2000 2009-04-17 03:08:31
保存picturebox图像至ORACLE BLOB型字段没有问题:
Dim imgData(0) As Byte
Dim ms As New System.IO.MemoryStream
PictureBox1.Image.Save(ms, PictureBox1.Image.RawFormat)
ReDim imgData(ms.Length - 1)
ms.Read(imgData, 0, ms.Length)
ms.Close()

Dim strSQL As String
strSQL ="insert into member_photo(pernr,photo) values ('" & txtPERNR.Text & "',:photo)"
Dim sqlCom As New OracleCommand
sqlCom.CommandText = strSQL
sqlCom.Connection = Conn
sqlCom.Parameters.Add("photo", OracleType.Blob, imgData.Length)
sqlCom.Parameters(0).Value = imgData
sqlCom.ExecuteNonQuery()

但提取BLOB字段内容至PictureBox框报错:
Dim strSQL As String
strSQL = "select photo from member_photo where pernr='" & txtPERNR.Text & "'"
Dim cmd As OracleCommand = New OracleCommand(strSQL, Conn)
Dim dr As OracleDataReader = cmd.ExecuteReader()
If dr.Read() Then
Dim imgData() As Byte = dr.Item(0)
Dim ms As MemoryStream
ms = New MemoryStream(imgData)
Dim imageBlob As Image = Image.FromStream(ms) ' 这边报错:未处理ArgumentException 参数无效。
PictureBox1.Image = imageBlob
ms.Close()
Else
PictureBox1.Image = Nothing
End If

...全文
301 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
jamxie 2009-12-25
  • 打赏
  • 举报
回复
有用!好同志
bw555 2009-04-18
  • 打赏
  • 举报
回复
不错,代码收藏了
oyljerry 2009-04-17
  • 打赏
  • 举报
回复
以文件方式读取对应的二进制流等,然后再显示
bfly2000 2009-04-17
  • 打赏
  • 举报
回复
自己解决了,保存的时候有问题,用了下面的方法保存:
Dim imgData(0) as String
Dim imgPath As String
imgPath = OpenFileDialog1.FileName
Dim file As FileStream = New FileStream(imgPath, FileMode.Open, FileAccess.Read)

ReDim imgData(file.Length)
file.Read(imgData, 0, imgData.length)
file.Close()

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧