C# ile Veritabanındaki Resimleri PictureBox'ta Göstermek

Batuhan Düzgün tarafından yayınlanmıştır 14. October 2010 01:29

Merhaba arkadaşlar bu yazıda sizlere veritabanında bulunan resim yollarını alıp,resimleri picturebox'ta gösterme işlemini göstereceğim.İlk iş olarak Visual Studio 'da New>>File>>Project>>Windows Form Application yolunu izleyerek boş bir proje açıyoruz.Ardından aşağıdaki gibi bir görsel arayüz hazırlıyoruz.
 
 
Ardından aşağıdaki MS Access 2007 veritabanında bir tablo oluşturalım.Aşağıda tablo tasarımı görülmektedir.
 
 
 
Tablomuzda sadece resim adı ve resmin dosya yolu bulunmaktadır.Daha sonra bir kaç kayıt ekliyoruz.Aşağıdaki gibi.
 
 
 
Şimdi de yavaş yavaş programımıza ait kodları yazmaya başlayalım.İlk önce bir kaç adet başlık dosyası ekleyelim.
 

usingSystem.Data.OleDb;

usingSystem.Collections;
 
Ardından global değişkenlerimizi tanımlayalım.
 

private OleDbCommand Komut;

private OleDbConnection Baglanti;

private List<string>ImageDizi = new List<string>();

private List<string>IsimDizi = new List<string>();

private int Indis = 0;
 
Form yüklenirken veritabanındaki resimlerin dosya yolunu ve isimlerini List'lere alıyoruz.Bunun için veritabanı bağlantı işlemleri yapacağız.Listleri dolduracağız.
Aşağıda metodun kodları verilmiştir.
 

public void ResimleriGetir()

{

      try

      {

         Baglanti = newOleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;DataSource=" + Application.StartupPath+ "\\ResimleDB.accdb; Persist Security Info=False;");

       //yukarıda bağlantıcümlesini verdik.

       Baglanti.Open();

       //baglantıyı açtık.

       Komut = newOleDbCommand("SELECTResimAdi,ResimYolu FROM ResimlerTable",Baglanti);

       //SQL cümlemizive açık bağlantımızı komut nesnesinin kurucusuna atıyoruz.

       OleDbDataReaderOkuyucu = Komut.ExecuteReader();

 

       //while döngüsüile bütün resim isimlerini ve resmin dosya yolunu arraylistlere aktarıyoruz

       while(Okuyucu.Read())

       {

          IsimDizi.Add(Okuyucu.GetValue(0).ToString());//0 demek ilk parametre demektir.

          ImageDizi.Add(Okuyucu.GetValue(1).ToString());//1 ise ikinci parametredir.

        }

          Okuyucu.Close();//tüm açık bağlantıları kapıyoruz.

           Baglanti.Close();

         }

         catch(Exception ex)

         {

                //hataolursa exception fırlat.

                MessageBox.Show(ex.ToString());

         }

 } 
 
Şimdi butonlara ileri geri tıklama yaptığımızda resimler otomatik değişecek aynı şekilde resim ismi de değişecek. 
 
Bunun için ileri ve geri butonlarına aşağıdaki kodları yazıyoruz.
 

private void geri_Click(objectsender, EventArgs e)

        {

            if(Indis >= 0 && Indis == 6)

            {

                //indis6 ya gelmişse indisi bir geri çekiyoruz.

                Indis--;

            }

            else

            {

                //ImageDizibizim dosya yollarını tutar.tek tek alıyoruz.

                pictureBox1.Image = Image.FromFile(ImageDizi[Indis].ToString());

                //resmipicturebox boyutlarına sığdırmak için StrechImage yapmamız gerekiyor.

                pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;

                textBox1.Text =IsimDizi[Indis].ToString();

                Indis--;

            }

        }

 

        privatevoid ileri_Click(objectsender, EventArgs e)

        {

            if(Indis < ImageDizi.Count && Indis == -1)

            {

                //indis-1 ya gelmişse indisi arttır.

                Indis++;

            }

            else

            {

                pictureBox1.Image = Image.FromFile(ImageDizi[Indis].ToString());

                pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;

                textBox1.Text =IsimDizi[Indis].ToString();

                Indis++;

            }

} 
 
Son işlem olarak ise projeyi derleyelim.
 
 
 
Evet işlem başarılı.Bir sonraki makalemde görüşmek dileğiyle ...
 
Uygulamayı indirmek için tıklayınız   http://rapidshare.com/files/424864101/VeritabanindanResimCekmek.rar
 
Batuhan Düzgün
 
Sakarya Üniversitesi
 
Bilgisayar Mühendisliği 

Currently rated 5.0 by 5 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Etiketler:

C#

Comments

Add comment


(Will show your Gravatar icon)  

  Country flag

biuquote
  • Comment
  • Preview
Loading





Bu site BlogEngine.NET 1.4.5.0 ile oluşturulmuştur. Türkçe çevirisi BlogEngine TR ekibi tarafından yapılmıştır.

Batuhan Düzgün

Sakarya Üniversitesi 

Bilgisayar Mühendisi

Endüstri Mühendisi

Yeditepe Üniversitesi

Bilgisayar Mühendisliği Yüksek Lisans 

 sahibinden.com

   Kıdemli Uzman Yazılım Mühendisi  

E-Mail 

   batuhan.duzgun@sahibinden.com

   batuhan.duzgun@windowslive.com

  github.com/batux

 

Sayfalar

Calendar

<<  September 2018  >>
MoTuWeThFrSaSu
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

Yazıları geniş takvimde göster