Bagaimana cara menyimpan gambar dalam database server MS SQL dari aplikasi win form VB.NET dengan ruang database minimal?

pemrograman


Halo!
Hari baik untuk semua,

Saya memiliki proyek formulir windows VB.Net dengan MS SQL Server sebagai database back end. Saya menyimpan gambar ke database dari aplikasi. Hal ini diperlukan oleh klien, misalnya ketika pengguna memposting Voucher Pembayaran maka ia perlu menyimpan beberapa dokumen manual sebagai bukti pendukung transaksi. Semuanya baik-baik saja. Gambar disimpan dan diambil dengan sempurna. Namun karena ini ukuran database meningkat jauh lebih besar dari yang diperkirakan.
Sekarang saya ingin tahu bagaimana saya bisa melakukan tugas yang sama dengan menggunakan penyimpanan database seminimal mungkin.

Jika ada yang bisa membantu dalam hal ini, saya akan sangat berterima kasih.

Terima kasih dan salam.

Apa yang saya coba:

Pertama saya menyisipkan gambar dalam kontrol PictureBox dengan browsing windows menggunakan OpenFileDialog.

Public Sub Select_Picture()
     Try
         OpenFile.ShowDialog()
         Dim PicPath As String = OpenFile.FileName
         MyPicBox.ImageLocation = PicPath
     Catch ex As Exception
         MessageBox.Show(ex.Message)
     End Try
End Sub

Kemudian untuk menyimpan gambar tersebut saya menggunakan kode berikut.

  Public Sub SaveImage_()
        Dim SQL_Connection As New SqlConnection
        Try
            Dim MyImage As Image
            MyImage = MyPicBox.Image
            SQL_Connection.ConnectionString = MyConnectionString
            SQL_Connection.Open()
            Dim MyQuery As String = "insert into tbl_Setup_Companies Values(@Image_)"
            Dim MyCommand As SqlCommand
            MyCommand = New SqlCommand(MyQuery, SQL_Connection)
            MyCommand.Parameters.Add(New SqlParameter("@Image_", SqlDbType.Image))
            MyCommand.Parameters("@Image_").Value = ConvertImage(MyImage)
            MyCommand.ExecuteNonQuery()
            SQL_Connection.Close()
Catch ex As Exception
  MessageBox.Show(ex.Message)
End Try
End Sub

Untuk mengubah Gambar menjadi Byte, saya menulis fungsi berikut bernama “ConvertImate”

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

Solusi 1

Tidak bisakah Anda memberi nama unik pada gambar tersebut, menyimpannya ke server sebagai file dan kemudian hanya menyimpan referensi ke file tersebut di database?

コメント

タイトルとURLをコピーしました