Sql Veritanına Image Kaydetmek
Merhaba arkadaşlar, bu makalemizde sql veritabanımıza resim kaydedeceğiz. Formunuza 1 adet PictureBox, 2 adet Button ekleyin. Açıklamalar kod kısmında verilmiştir.
Imports System.Data.SqlClient
Imports System.IO
Public Class Form1
Dim dosya As OpenFileDialog = New OpenFileDialog()
Private Sub btnAc_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAc.Click
dosya.InitialDirectory = "C:\"
dosya.Title = "Resim Seç"
dosya.FilterIndex = 1
dosya.Filter = ("Jpeg Resim Dosyası (*.jpg)|*.jpg|Gif Resim Dosyası (*.gif)|*.gif|Bmp Resim Dosyası(*.bmp)|*.bmp|Tüm Dosyalar(*.*)|*.*")
If dosya.ShowDialog() = DialogResult.OK Then
Dim ad As String = ""
ad = dosya.FileName
'Resimi pictureboxta gösterimini sağlıyoruz
pbox1.Image = Image.FromFile(ad)
pbox1.SizeMode = PictureBoxSizeMode.StretchImage
Label1.Text = dosya.SafeFileName
End If
End Sub
Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click
Dim str As String = "Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\image.mdf;Integrated Security=True;User Instance=True"
Dim baglan As SqlConnection
baglan = New SqlConnection(str)
Dim dosyaAdi As String
'resimin bulunduğu yeri tanımlıyoruz.
dosyaAdi = dosya.FileName
If File.Exists(dosyaAdi) Then
Dim id As Integer = 1
'resimi byte cinsinden okutup içeriğini alıyoruz.
Dim icerik As Byte() = ImageToStream(dosyaAdi)
baglan.Open()
'resimimizin veritabanına girişini yapıyoruz.
Dim komut As New SqlCommand("insert into images (id,resim) values ( @id,@resim)", baglan)
komut.Parameters.AddWithValue("@id", id)
komut.Parameters.AddWithValue("@resim", icerik)
komut.ExecuteNonQuery()
baglan.Close()
MsgBox("Girilen resim veritabanına başarıyla kaydedildi.")
Else
MsgBox(dosyaAdi & " bulunamadı! ")
End If
End Sub
Private Function ImageToStream(ByVal fileName As String) As Byte()
'memorystream ile tampon bellek oluşturuyoruz.
Dim ms As New MemoryStream()
git:
Try
Dim image As New Bitmap(fileName)
'resim dosyasını kaydediyoruz.
image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg)
Catch ex As Exception
GoTo git
End Try
Return ms.ToArray()
End Function
End Class
Bir makalenin daha sonuna geldik. Bir sonraki makalede görüşmek dileğiyle. Hoşçakalın. Bahadır ŞAHİN