24 Şubat 2014 Pazartesi

Veritabanı Ders Uygulamaları - 9

Veri ekleme yani insert olayı ve veri silme yani delete olayını yapabileceğimiz bir uygulama gerçekleştireceğiz... Uygulamamız daha önceki örnekler de göz önünde bulundurulduğunda gayet basit ve ideal... Daha önceki tablo örneklerinde de kullanmış olduğumuz bilsay veritabanını aşağıdaki gibi hazırlıyoruz... 


Kimlik alanı daha önceki örneklerde olduğu gibi otomatik sayı olarak tanımlanacaktır... Gelelim programın çalışmasına... Aşağıda programın çalışmasından örnekler mevcut... Öncelikle tasarımı aşağıdaki gibi yapıyorsunuz...

















Yeni ürün ekleme durumu... Yeni ürün ekle butonuna bastığımız anda ekleme işlemini yapıyor... 

































Her hangi bir ürünü silmek için ise seçmemiz yeterli olacaktır... Tablodan seçtikten sonra ürün sil butonu ile birlikte silme işlemi yapılabilir...

1 - Tasarımı yukarıdaki örneklere benzer şekilde gerçekleştiriniz...

2 - Daha önceki örneklere de bakarak baglanti, komut, da ve ds değişkenlerini tanımlayınız... baglanti değişkeni oledbconnection türünde, komut değişkeni oledbcommand türünde, da değişkeni oledbdataadapter türünde, ds değişkeni dataset türünde olacak şekilde tanımlayınız... Aynı zamanda baglanti değişkenine veritabanının yolunu da eklemeyi unutmayınız...

3 - Aşağıdaki iki değişkeni de genel kısımda tanımlayınız... Tanımlama sebepleri yanlarında yazmaktadır...
        int kimliktasi = 0;     // Datagridviewdeki seçilen ürünün numarası için...  
        bool secilivar = false; // Seçili ürün kontrolü için... 

4 - Datagridview i dolduracak aşağıdaki gibi bir metod yazınız... Burada veritabanında ki tüm verileri Adı alanına göre listeleyecek şekilde bir sorgu yazınız...  
void doldurdatagridview1()

Bu arada veritabanın da bulunan Kimlik alanını da datagridview de göstermeyeceğimiz için aşağıdaki komut satırını bu metoda eklemeyi unutmayınız... 
dataGridView1.Columns["Kimlik"].Visible = false;

Yine datagridview i güncellememiz gereken yerlerde üst üste bilgilerin gözükmemesi için ds değişkenini Clear komutu ile silmeyi unutmayınız... 

5 - Bir diğer metodumuz da kaydetme ve silme işlemleri için veritabanına ulaşacağımız aşağıdaki metoddur... Bu metodumuza da insert ve delete ile göndereceğimiz sql sorgusunu, sorgu isimli parametremiz ile alacağız... 
void guncelleveritabanı(string sorgu)

6 - Formun girişinde datagridview i dolduran metodumuzu çağıralım ve program açıldığında bütün veriler datagridview içerisinde gözükmüş olsun... 

7 - Datagridview in private void dataGridView1_CellClick olayına aşağıdaki kodları ekleyelim... 
secilivar = true;
kimliktasi = int.Parse(ds.Tables["Tablo"].Rows[e.RowIndex]["Kimlik"].ToString());
Yine bu olay içerisinde e.RowIndex değeri -1 ise veritabanından her hangi bir Kimlik numarası aldırmayalım... Eğer bu işlemi yapmazsak alan başlıklarına tıklandığında program hata verecektir... Bunu try catch veya alan başlıklarına tıklamayı kaldırarak da yapabilirdik... 

8 - Ekle butonu içerisine kodları yazmaya başlayalım... Öncelikle bir tane if ile text kutularından boş olan varsa eklemeyi engelleyecek olan kodu yazalım ve bu durumda uyarı mesajı verdirelim... Bu sayede kutuların hepsini doldurmadan ekleme yaptırmayalım... 

9 - Aşağıdaki satır ile veritabanına eklemeyi yapalım... 
guncelleveritabanı("Insert Into yeniurun ([Adı],[Tanım],[Özellik]) Values ('" + textBox1.Text.ToUpper() + "','" + textBox2.Text.ToUpper() + "','" + textBox3.Text.ToUpper() + "')");

10 - Hemen ardından datagridview i güncelleyelim ve text kutularını temizleyelim... 

11 - Sil butonunun içeriğini yapalım... Öncelikle secili ürün olmadan silme işlemi yapamayız... Bu sebeple  
if (secilivar)
            {
                // Buraya seçili olan kimlik numarasına göre silme ile ilgili komut satırı gelecek... Hemen ardından datagridview i güncelleyeceğiz... 
            }
else
                MessageBox.Show("TABLODAN ÜRÜN SEÇİMİ YAPINIZ...");

12 - Yine silme işleminden hemen sonra seçili olan ürün değişkenimizi false yaparak yeni seçim yapılmadan sil butonunu çalıştırmamış oluyoruz... Aşağıdaki komutu silme işleminin hemen sonrasına ekleyiniz... 
secilivar = false;

Bu ekleme ile program bitmiş olacak...