[英]How to retrieve a blob from mysql to picturebox when i click the datagrid in vb.net
[英]Retrieve BLOB from MySQL with vb.net not using picturebox
这似乎是一个琐碎的问题,但是我一直在寻找一个合理的解释,并试图自己破译这个问题,但几乎没有成功。 我希望检索存储在MySql数据库中的Blob,将其呈现为图像,并在关联的ASPX页面中将其显示为图像。 我没有使用图片框。 如果有我没看过的资源,我将接受它作为答案并为重复的问题表示歉意。 我不需要建立连接的帮助。
编辑:这是我最近使用的东西,除了将文件流传送到我无权向其写入文件的目录之外。 错误发生在Image.FromStream(lstr)
Dim Query As String = "Select PIC from USERS where ID = 1"
Dim adapter As New MySql.Data.MySqlClient.MySqlDataAdapter
adapter.SelectCommand = New MySql.Data.MySqlClient.MySqlCommand(Query, connection)
Dim Data As New DataTable
Dim commandbuild As New MySql.Data.MySqlClient.MySqlCommandBuilder(adapter)
adapter.Fill(data)
Dim lb() As Byte = Data.Rows(Data.Rows.Count - 1).Item("PIC")
Dim lstr As New System.IO.MemoryStream(lb)
Dim X As Image = Image.FromStream(lstr)
lstr.Close()
Return X
在这种情况下, http : //msdn.microsoft.com/en-us/library/93z9ee4x.aspx表示您必须在Image的生存期内保持流打开。
所以你必须删除lstr.Close()
您可以在不再需要lstr
后再进行处理。
再次编辑:
改变了这个
Dim lstr As New System.IO.MemoryStream(lb)
Dim X As Image = Image.FromStream(lstr)
lstr.Close()
至
Dim lstr As New System.IO.MemoryStream(lb)
Dim X As Image = Image.FromStream(lstr)
Dim X2 As Image = X
x.Dispose
lstr.Close()
那么您可以使用X2作为图像
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.