Как сохранить и получить изображение в базе данных из элемента управления PictureBox в Windows Forms (VB.NET) - PullRequest
0 голосов
/ 21 марта 2012

У меня проблемы с просмотром и сохранением изображения на SQL Server. Также я хочу получить это изображение.

Это код для просмотра изображения и его отображения в PictureBox1 Control

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 / местоположение / имя в базе данных?

Какой метод будет лучше

Спасибо

1 Ответ

1 голос
/ 21 марта 2012

Просто другой подход, попробуйте это, чтобы сохранить ваш файл изображения локально и загрузить их, не сохраняя их в базе данных.Примечание: picPath - это путь к файлу изображения, вы можете использовать openfiledialog или другой метод, чтобы установить его в lblPhoto.text

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
...