在我的Windows应用程序中,我必须在Windows Form PictureBox中显示图像,该图像将由OpenFile Dialog浏览,然后将PictureBox图像保存到Sql Server 2008 R2 Varbinary(Max)列并显示保存在Sql Server 2008 R2 Varbinary中的图片(使用VB.NET 2010的MaxBox列到PictureBox。
我使用以下代码将Picture从物理驱动器加载到PictureBox
Private Sub btnPicBrowse_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPicBrowse.Click
With Me.OpenFileDialog1
.FileName = ""
.Filter = "Image Files(*.BMP;*.JPG;*.JEPG;*.GIF)|*.BMP;*.JPG;*.JEPG;*.GIF|All files (*.*)|*.*"
.RestoreDirectory = True
.ValidateNames = True
.CheckFileExists = True
If .ShowDialog = Windows.Forms.DialogResult.OK Then
Me.PictureBox1.Image.Dispose()
Me.PictureBox1.Image = System.Drawing.Image.FromFile(.FileName)
Me.lblPicPath.Text = .FileName
End If
End With
End Sub
现在我必须将此映像保存到SQL SERVER 2008数据库VarBinary(MAX)列,然后使用VB.NET 2010将保存在Sql Server 2008 R2 Varbinary(Max)列中的图片保存到PictureBox。
谢谢&此致
JYOTIRMOY
答案 0 :(得分:3)
在youtube上找到了一些很酷的方法,前面你创建了一个接收图片并将其转换为字节并将其保存到SQLServer DB中的字节的函数,当你检索它时它会显示在图片框上。这是代码实现它并告诉我它是否有效...如果它确实投票给我的答案请:
Public Function ConvertImage(ByVal myImage As Image) As Byte()
Dim mstream As New MemoryStream
myImage.Save(mstream, System.Drawing.Imaging.ImageFormat.Jpeg)
Dim myBytes(mstream.Length - 1) As Byte
mstream.Position = 0
mstream.Read(myBytes, 0, mstream.Length)
Return myBytes
End Function
因此,如果您使用存储过程进行保存,只需将图片中的图像作为参数传递,例如pictureBoxUser.Image