【问题标题】:How to save & retrieve image in Database from PictureBox control in windows Forms (VB.NET)如何在 Windows 窗体 (VB.NET) 中的 PictureBox 控件中保存和检索数据库中的图像
【发布时间】:2012-04-05 15:07:46
【问题描述】:

我在浏览时遇到问题,然后将图像保存到 SQL Server。我还想检索该图像。

这是浏览图像并在 PictureBox1 控件中显示的代码

Public Sub SelectImage()

    With OpenFileDialog1
        '.InitialDirectory = "C:\"
        .Filter = "All Files|*.*|Bitmaps|*.bmp|GIFs|*.gif|JPEGs|*.jpg"
        .FilterIndex = 4
    End With

    If OpenFileDialog1.ShowDialog() = DialogResult.OK Then
        PictureBox1.Image = Image.FromFile(OpenFileDialog1.FileName)
        PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
        PictureBox1.BorderStyle = BorderStyle.Fixed3D
    End If

我在表格中创建了一个图像字段,这是我的存储过程

  Public Sub Insert_Update_Personal()
    Dim ds As DataSet = New DataSet()
    Dim cmd As SqlCommand = New SqlCommand("sp_Insert_Update_Personal", con)
    con.Open()
    cmd.CommandType = CommandType.StoredProcedure  
    cmd.Parameters.AddWithValue("@picture", UploadImage)      
    LastPID = Convert.ToInt32(cmd.ExecuteScalar())
    cmd.Dispose()
    con.Close()

但不知道如何将其传递给图像参数&请建议。还有什么方法可以将图像保存在本地驱动器上&只需将 url /location/name 保存在数据库中?

哪种方法更好

谢谢

【问题讨论】:

    标签: sql windows vb.net winforms picturebox


    【解决方案1】:

    只是另一种方法,尝试将您的图像文件保存在本地并加载它们而不将它们存储在数据库中。 注意:picPath是图片文件的路径,可以在lblPhoto.text中使用openfiledialog或者其他方法设置

    Private Sub SavePhoto()
    Try
    Dim picPath As String = ""
    Dim picName As String = ""
    picPath = lblPhoto.Text
    If lblPhoto.Text = "" Then
    picName = (txtimage.Text + ".tus")
    End If
    If picPath <> "" And (File.Exists(AppDomain.CurrentDomain.BaseDirectory + "\\Photo\\" + picName) = True) Then
    File.Delete(AppDomain.CurrentDomain.BaseDirectory + "\\Photo\\" + picName)
    Else
    picName = (txtimage.Text + ".tus")
    File.Copy(picPath, AppDomain.CurrentDomain.BaseDirectory + "\\Photo\\" + picName, True)
    End If
    Catch ex As Exception
    
    End Try
    
    End Sub
    

    现在要加载保存的照片,请执行以下操作

    If (File.Exists(AppDomain.CurrentDomain.BaseDirectory + "Photo\" + txtimage.Text + ".tus") = True) Then
    PictureBox1.Image = Image.FromFile(AppDomain.CurrentDomain.BaseDirectory + "Photo\" + txtPolicy_No.Text + ".tus", True)
    End If
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-16
      • 1970-01-01
      • 2011-09-24
      • 1970-01-01
      相关资源
      最近更新 更多