Yazı Font Küçült Yazı Font Büyült

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.

 

Resim1

Şekil 1

 

Resim2

Şekil 2

 

Resim3

Şekil 3

 

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