25 Şubat 2014 Salı

Veritabanı Ders Uygulamaları - 5

Update işlemine örnek oluşturacak olan bir çalışma yapacağız... Aşağıdaki form tasarımını gerçekleştiriniz... Text kutularının groupbox içerisinde olmasına özen gösteriniz... 

















Yine aynı şekilde aşağıdaki veritabanı tasarımını gerçekleştiriniz... Bu işlemi yaparken Kimlik değerini otomatik sayı olarak tanımlamayı unutmayınız... 













Çalışma sırasında tablodan seçmiş olduğumuz ürün bilgileri textlerde gösterilecek ve üzerinde değişiklik yapıldıktan sonra ürün düzenle butonuna basıldığı anda update komutu ile güncelleme yapılacaktır... 

1 - Veritabanı temel bağlantılarını ve da, ds değişkenlerini tanımlayınız...

2 - Aşağıdaki değişkenleri Global olarak tanımlayınız... 
        int kimliktasi = 0;            // Datagridview de seçili olan ürünün kimlik numarası...
      string urunad = "";         // Ürün bilgilerinin yedeğini almak için bu değişkenleri tanımladık... 
        string urunalt = "";
        string urunozellik = "";

3 - Datagridviewi dolduracağımız metodu aşağıdaki gibi hazırlayınız... 
void doldurdatagridview1()
        {
            ds.Clear();
            baglanti.Open();
            komut.CommandText = "Select * From yeniurun Order By [Adı]";
            komut.Connection = baglanti;

            da = new OleDbDataAdapter(komut);
            da.Fill(ds, "Tablo");
            dataGridView1.DataSource = ds;
            dataGridView1.DataMember = "Tablo";
            dataGridView1.Columns["Kimlik"].Visible = false; 
            baglanti.Close();
        }

4 - Veritabanında update işlemi yapacağımız metodu aşağıdaki gibi oluşturunuz...
void guncelleveritabanı(string sorgu)
        {
// Buradaki komutları siz doldurunuz... 
        }

5 - Güncelleme işlemleri sırasında ürünün daha önceki bilgileri ile aynı girilmesini engellemek için değerlerini değişkenlere alacağımızı söylemiştik... Bir metod ile datagridview de seçili olan ürünün bilgilerini urunad, urunalt ve urunozellik isimli değişkenlere alıyoruz... Bu işlem için aşağıdaki metodu kullanıyoruz...
void getir(string sorgu)
        {
            // Bağlantı ile ilgili giriş komutlarını doldurunuz...
            while (oku.Read())
            {
                    textBox1.Text = oku["Adı"].ToString();
                    textBox2.Text = oku["Tanım"].ToString();
                    textBox3.Text = oku["Özellik"].ToString();
                    urunad = textBox1.Text; urunalt = textBox2.Text; urunozellik = textBox3.Text;
            }
            // Bağlantı ile ilgili çıkış komutlarını doldurunuz... 
        }

7 - Form giriş olayında groupbox ı pasif duruma getiriniz... Bu sayede veri düzenleme işlemi yapılmasını engelleyelim... Aynı zamanda datagridview e bilgileri doldurunuz... 

8 - Datagridview in aşağıdaki olayını etkinleştiriniz...
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)

9 - Bu olayın içerisinde groupbox ı aktif hale getiriniz... Aynı zamanda aşağıdaki satırlar ile hem kimlik numarasını alalım, hem de kimlik numarasına ait olan verileri değişkenlerimiz de saklayalım...
kimliktasi = int.Parse(ds.Tables["Tablo"].Rows[e.RowIndex]["Kimlik"].ToString());
// Burada getir metodu ile kimliktasi değerine göre sorgulama yaptırınız...

10 - En son olarak ürün düzenle butonun içerisine yazılacak olanlara bakalım... Öncelikle veri düzenleme yapmadan hem textlerin içerisinin dolu olduğunu hemde düzenleme yapılmadan geçilmemesi gerektiğini aşağıdaki gibi bir if ile yapalım... 
if (textBox1.Text == "" || textBox1.Text == urunad)
  MessageBox.Show("Yeni ürün adı giriniz...");
else if // Devamını siz doldurunuz...

11 - Bütün şart kontrolleri yapıldıktan sonra her hangi bir aksilik yok ise veritabanında güncellemeyi yapınız...
guncelleveritabanı("Update yeniurun Set [Adı]= '" + textBox1.Text.ToUpper() + "', [Tanım]= '" + textBox2.Text.ToUpper() + "',[Özellik]= '" + textBox3.Text.ToUpper() + "' Where [Kimlik]=" + kimliktasi); 

12 - Datagridview i yine bu buton içerisinde doldurunuz...

13 - groupboxı pasif hale getirerek ve textlerin içeriğini temizleyerek programı bitiriniz... 

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...