C# Kayıt Silme etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
C# Kayıt Silme etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

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




27 Mart 2013 Çarşamba

Veritabanı - 6... Verileri Kaydetme ve Silme...

Şimdi sıra kayıt ekleme ve silme komutlarına geldi... Komut kullanımları olarak daha kolaydır... Kayıt ekleme işleminde veri tiplerine dikkat etmemiz şart... Sayı olan yere metin kaydetmek istediğiniz anda otomatik olarak hata verir... Hatta sayı tanımlamalarınız da virgüllü ifadeler sorun çıkartabilir... Bunu engelleyecek bir yöntem var.. .Parametre kullanımı... İleri ki örneklerde göreceğiz... 

SQL yapısında kaydetme komutu insert dür... Kullanımı ise aşağıdaki gibidir... 

insert into kimlik (adisoyadi, adres)  values ('Büşra','Üsküdar')

Buradaki örnekte kimlik veritabanında ki tablonun adıdır... 
adisoyadi ve adres ise tablodaki alanların isimleridir... 
Gireceğimiz verileri yine sıralı olarak Büşra ve Üsküdar olarak giriyoruz... Aynı sırayı kullanmak zorundayız... Aynı şekilde kaç tane alan adı belirliyorsak o kadar veri girmek zorundayız... 
Alan adı belirlemek yerine aşağıdaki gibi bir kullanım da yapabiliriz... 

insert into kimlik  values ('Büşra','Üsküdar')

Bu durumda tabloda bulunan bütün alanlara veri girmek zorundayız... 

Kayıt silme işleminde ise bir alana ait olan veriyi bulmamız yeterli... Bu şekilde bütün satırı silebiliriz... Yaptığımız örnekte adisoyadi kısmına göre arama yaptırıp silme işlemini gerçekleştiriyoruz... Kullanımı aşağıdaki gibidir...

Delete From kimlik where adisoyadi=('Büşra')

Buradaki örnekte kimlik veritabanında ki tablonun adıdır... 
adisoyadi alanında Büşra isimli birisi varsa ona ait olan bütün satır silinmektedir... 


Formumuzun ilk hali bu şekilde... Aşağıdaki tasarımı hazırlayınız... 
 

Veritabanımızın tasarım kısmı da bu şekilde olacaktır... Burada numara olmasa da olur... 

Programı çalıştırıp kaydet butonuna bastığımız anda her hangi bir sorun olmaması durumunda aşağıdaki mesajı verip veritabanına kaydetmektedir... 

Veritabanına verinin kaydedilmiş hali aşağıdaki gibidir... 

Veri silmek için ise sadece isim kısmına bakılmaktadır... Büyük küçük harf kontrolü yaptırmadığımız için veri girişinde harflere dikkat edelim... İsmi girip Sil tuşuna basıldığı anda Kayıt Silindi diye mesaj göndermektedir... 

Kayıtın silindiğini de aşağıdan görebilirsiniz... 

Programımızın kodları aşağıdaki gibidir;

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;

namespace WindowsApplication40
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        OleDbConnection baglan = new OleDbConnection("provider=Microsoft.jet.oledb.4.0; Data Source=kimlik.mdb");
        OleDbCommand komut = new OleDbCommand();
       
        private void button1_Click(object sender, EventArgs e)
        {
            komut.Connection = baglan;
            // Tabii bizim bilgilerimiz textboxlar da olduğu için aşağıdaki gibi komut satırımızı yazıyoruz... 
            komut.CommandText = "insert into kimlik(adisoyadi,adres) values('" + textBox1.Text + "','" + textBox2.Text + "')";
            baglan.Open();
            komut.ExecuteNonQuery();// Veritabanında veri değişikliğinin yapıldığı kısım burasıdır... Bu sebeple bağlantının bu komutdan önce açılıp sonra kapatılması yeterli olacaktır... 
            baglan.Close();
            MessageBox.Show("Kayıt Eklendi");
        }

        private void button2_Click(object sender, EventArgs e)
        {
            komut.Connection = baglan;
            komut.CommandText = "Delete From kimlik where adisoyadi=('" + textBox1.Text + "')";
            baglan.Open();
            komut.ExecuteNonQuery(); // Program bu satırda hata veriyorsa bilinki üsteki sql satırında sıkıntı var demektir...
            baglan.Close();
            MessageBox.Show("Kayıt Silindi");
        }
    }
}