[ad_1]
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?
[ad_2]
コメント