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