Bu örneğimizde C# ile SQL Server veritabanı bağlantısı kullanarak basit bir telefon rehberi oluşturacağız.
Örneğimizde telefon defterine kişi ekleme, kişi güncelleme, kişi arama ve kişi silme işlemlerini gerçekleştireceğiz.
Örneğimiz için aşağıdaki dbRehber veritabanını kullanacağız.
Bu veritabanı içinde Kisiler tablosunu oluşturarak örneğimize başlayalım.
Kişiler tablosunda bulunan alanlar sırasıyla Id, Ad, Soyad, ve Telefon olacak.
Adım 1: Yeni bir Windows Form App projesi oluşturarak Form üstüne Toolbox yardımıyla 4 adet TextBox, 3 Adet Label, 4 adet Button ve 1 adet DataGridView kontrolü ekleyin.
Name özelliklerini:
TextBoxlar için;
txtAra, txtAd, txtSoyad ve txtTelefon olarak değiştirin.
Buttonlar için;
btnAra, btnKaydet, btnGüncelle, btnSil olarak değiştirin.
DataGridView için;
dgvKisiler olarak değiştirin.
Adım 2: Kodlarımıza geçelim.
Öncelikle SQL bağlantısı için aşağıdaki satırı ekleyin.
1 2 3 | using System.Data.SqlClient; |
Daha sonra bağlantı işlemleri için kullanacağımız SqlConnection, SqlDataAdapter, SqlCommand ve DataTable nesnelerimizi global olarak tanımlayacağız.
İlk olarak veri çekme yani kişileri getirme işlemi için gereken kodları oluşturacağız. Verilerin getirilmesi işlemi Form ilk açıldığında, yeni kişi eklendiğinde, güncelleme yapıldığında ve silme işlemi yapıldığında yenileme amaçlı kullanılacağından bir metot içerisinde kodlarımızı yazacağız ve ihtiyaç olduğu durumlarda bu metotu çağıracağız.
1 2 3 4 5 6 7 8 9 10 11 12 | void KisiGetir() { conn=new SqlConnection("Data Source=.;Initial Catalog=dbRehber;Integrated Security=True"); adapter=new SqlDataAdapter("SELECT *FROM Kisiler",conn); DataTable tablo = new DataTable(); conn.Open(); adapter.Fill(tablo); dgvKisiler.DataSource=tablo; conn.Close(); } |
Oluşturmuş olduğumuz bu metodu Form ilk açıldığında çalıştırmak için Form_Load olayına ekliyoruz. Bu sayede Form açılır açılmaz Verilerimizin DataGridView‘ de görüntülenmesi sağlanacaktır.
1 2 3 4 5 6 | private void Form1_Load(object sender, EventArgs e) { KisiGetir(); } |
Ekle butonuna bastığımızda Textbox‘ lara girilen verilerin Sql tablomuza kayıt edilmesi için ise;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | private void btnKaydet_Click(object sender, EventArgs e) { string sorgu = "Insert into Kisiler (ad,soyad,telefon) values (@ad,@soyad,@tel)"; cmd = new SqlCommand(sorgu, conn); cmd.Parameters.AddWithValue("@ad", txtAd.Text); cmd.Parameters.AddWithValue("@soyad", txtSoyad.Text); cmd.Parameters.AddWithValue("@tel", txtTelefon.Text); conn.Open(); cmd.ExecuteNonQuery(); conn.Close(); KisiGetir(); } |
Güncelle Butonu için kodlar:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | private void btnGüncelle_Click(object sender, EventArgs e) { string sorgu = "Update Kisiler Set ad=@Ad,soyad=@Soyad,Telefon=@tel Where Id=@id"; cmd = new SqlCommand(sorgu, conn); cmd.Parameters.AddWithValue("@ad", txtAd.Text); cmd.Parameters.AddWithValue("@soyad", txtSoyad.Text); cmd.Parameters.AddWithValue("@tel", txtTelefon.Text); cmd.Parameters.AddWithValue("@id",dgvKisiler.CurrentRow.Cells[0].Value); conn.Open(); cmd.ExecuteNonQuery(); conn.Close(); KisiGetir(); } |
Sil Butonu için kodlar:
1 2 3 4 5 6 7 8 9 10 11 12 | private void btnSil_Click(object sender, EventArgs e) { string sorgu = "DELETE Kisiler Where Id=@id"; cmd = new SqlCommand(sorgu, conn); cmd.Parameters.AddWithValue("@id", dgvKisiler.CurrentRow.Cells[0].Value); conn.Open(); cmd.ExecuteNonQuery(); conn.Close(); KisiGetir(); } |
DataGridView tıklanan satır bilgilerini ilgili textBox’lara aktaralım.
1 2 3 4 5 6 7 8 | private void dgvKisiler_CellEnter(object sender, DataGridViewCellEventArgs e) { txtAd.Text =dgvKisiler.CurrentRow.Cells[1].Value.ToString(); txtSoyad.Text =dgvKisiler.CurrentRow.Cells[2].Value.ToString(); txtTelefon.Text =dgvKisiler.CurrentRow.Cells[3].Value.ToString(); } |
Ayrıca DatagridView için aşağıdaki ayarları yapalım.
SelectionMode >> FullRowSelect
Ara Butonu için kodlar:
1 2 3 4 5 6 7 8 | private void btnAra_Click(object sender, EventArgs e) { DataView dv = tablo.DefaultView; dv.RowFilter = "Ad Like '" + txtAra.Text + "%'"; dgvKisiler.DataSource = dv; } |
Ekran Çıktısı:
Add Comment