0

在我的 Windows 应用程序中,我必须在 Windows 窗体 PictureBox 中显示图像,该图像将由 OpenFile 对话框浏览,然后将 PictureBox 图像保存到 Sql Server 2008 R2 Varbinary(Max) 列并显示保存在 Sql Server 2008 R2 Varbinary(Max) 列中的图片使用 VB.NET 2010 到 PictureBox。

我使用以下代码将图片从物理驱动器加载到 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

4

1 回答 1

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

于 2013-06-02T09:03:45.707 回答