31 Aralık 2013 Salı

Veritabanı Ders Uygulamaları - 10... Struct Kullanımı...

1 - isyeri adında aşağıdaki veritabanını oluşturun... 
Bu veritabanı için sadece yas alanını sayı olarak tanımlayınız... 

2 - Aşağıdaki gibi form sayfası oluşturunuz... 

3 - Program çalıştığı zaman aşağıdaki gibi bir sonuç verecektir... Bu sonucu struct kullanmadan da yapabiliriz ama struct bize performans açısından artı sağlamaktadır... Struct ile ilgili genel bilgi almak için tıklayınız...













4 - Kod kısmına geçelim... Veritabanı komutlarını kullanabilmek için Data.OleDb sınıfını çağıralım...

5 - isyeri adındaki veritabanımızı çağıralım... oledbconnection sınıfını kullanarak baglanti adında bir değişken tanımlayalım...

6 - Sql sorgulaması yaptırabilmek için komut adında oledbcommand sınıfına ait bir değişken tanımlayalım...

7 - Bir tane struct tanımlayalım... ad,soyad,sehir,yas,ulke adında değişkenler tanımlayalım...
Struct tanımlanırken aşağıdakine benzer bir örnek kullanılabilir... Bu yapı her yerde kullanılabilecek şekilde tanımlanmalıdır...
Struct agac
{
          public string yaprak;
          public string govde;
          public int meyvesayisi;
}

8 - Program açıldığın da listboxın içeriğini doldurabilmek için Form Load da komutları yazıyoruz...

9 - Veritabanı bağlantısını açıyoruz...

10 - Veritabanından bütün bilgileri, oku adında  oledbdatareader sınıfından tanımladığımız değişkene getiriyoruz...

11 - Bir while döngüsü ile oku değişkenimiz içindeki verileri okutuyoruz...
While (oku.Read) 
{
            // işlemler
}

12 - Bu while döngüsünün içerisinde işlemler kısmında öncelikle bir değişken tanımlayacağız... Bu değişken struct yapısını çağıracak ve onun özelliklerini kullanacaktır... 
Örneğin yukarıdaki struct için Agac govde = new Agac(); şeklinde tanımlanabilir...

13 - Oku değişkenimize almış olduğumuz bilgileri sırası ile structta tanımlamış olduğumuz değişkenlere atayacağız... 
Örneğin govde.yaprak = oku[0].ToString();  gibi...

14 - Yine bu while döngüsü içerisinde atamış olduğumuz değişkenleri listboxa ekliyoruz...
Örneğin listBox1.Items.Add(govde); gibi...

15 - Veritabanı bağlantısını kapatıyoruz... 

16 - Aşağıdaki metodu struct içerisine yazarak ToString metodunu eziyoruz... Çünkü struct a bilgiler alınırken nesne olarak alınıyor ve veritabanındaki bütün veriler ekleniyor... Bu durumda yazdırabilmek için metodu bir daha tanımlıyoruz... Çünkü sadece listbox içerisinde adları görmek istiyoruz...
public override string ToString()
            {
                return Ad; // listboxda etiketlenirken sadece Ad alanı ile etiketleniyorlar... 
            }

17 - Listboxda seçilenleri görmek için listboxın selectedindexchanged olayını kodlayacağız... 

18 - Seçili olan elemana ait verileri getirebilmek için aşağıdaki kodu listboxın içerisine yazıyoruz...
Agac secilinesne = (Agac)listBox1.SelectedItem;

19 - Labellarımıza sırası ile seçili olan nesnemizin değerlerini aktarıyoruz... 
label1.Text = secilinesne.yaprak;

Programımızı çalıştırıyoruz... Bu örnek ile struct yapısının neden kullanılması gerektiğini de öğrenmiş oluyoruz...
* Performans açısından avantajlı...
* Veritabanını sürekli olarak aç kapa yapmak zorunda değiliz...
* Struct ile tanımladığımız nesneleri istediğimiz gibi kullanabiliyoruz...