Bu yazımızda veri tabanı arama işlemi hakkında kısa bilgi vererek, basit bir form uygulaması yapacağız.
Veri tabanı sistemlerinde arama işlemlerinde kullanacağımız yegane komut LIKE komutudur. Bu komut ile arayacağımız şartı içeren kayıtları veri tabanından getirebilmekteyiz. Komutun yazımı şu şekildedir;
Select * from tablo_adi where kolon_adi like ‘%aramakriteri%’
Şimdi burada LIKE komutundan sonraki kısmı bir incelememiz gerekmektedir. Gördüğünüz gibi burada iki adet % işareti koydum. Aslında bu bir örnek bu kısmın birkaç farklı kullanımı var.
Bu kullanımları kısaca açıklayacak olursak;
1) Select * from tablo_adi where kolon_adi like ‘%teknoltan%’
Açıklama: Bu kullanımın anlamı kolondaki “teknoltan“ içeren kayıtları getir demektir. Yani örneğin kolonda 6teknoltan veya teknoltannnn gibi kayıtlar olsa da bu sql komutuyla o kayıtları getirebiliriz.
2) Select * from tablo_adi where kolon_adi like ‘%a’
Açıklama: Bu komut ile kolondaki sonu “a “ ile biten kayıtları getirebilmekteyiz. Ancak son harfi a olmayan ama içerisinde “a“ harfi bulunan kayıtlar getirilmezler.
3) Select * from tablo_adi where kolon_adi like ‘b%’
Açıklama: Bu komut ile kolondaki başı “b “ ile başlayan kayıtları getirebilmekteyiz. Ancak ilk harfi “b” olmayan ama içerisinde “b” harfi bulunan kayıtlar getirilmezler.
Şimdi bu öğrendiklerimizi basit bir form uygulamasıyla pekiştirelim. Visual Studio’yu açıp File>New>Project yolunu izleyerek yeni bir form uygulaması açalım. Açtığımız forma bir adet Gridview, bir adet buton ve bir adette Textbox ekleyelim. Formumuzun görünümü şu şekilde görünmektedir:
Kısaca senaryomuz şöyle. Veri tabanında kişiler tablomuz var. Form ilk açıldığında DataGridView, kişiler tablosunun ad kısmı ile doldurulacak. Daha sonra kullanıcı aramak istediği ismi TextBox’a yazacak ve ara butonuna basacak. Eğer veri tabanının ad kısmında bu ismi içeren kayıt varsa bunlar getirilecek.
İlk olarak Form_Load kısmına DataGridViewi dolduracak kodlarımızı yazalım;
MySqlConnectionStringBuilder bag = new MySqlConnectionStringBuilder();
bag.Server = "localhost"; // Mysql veritabanına girerken yazdığınız server adı bende localhost
bag.Password = "teknoltan"; //kullanıcı parolam root sizde değişik olabilir..
bag.Database = "muhasebe"; // database ismimiz
bag.UserID = "teknoltan"; //Bu da kullanıcı adınız
MySqlConnection con = new MySqlConnection(bag.ToString());
con.Open();
MySqlDataAdapter da = new MySqlDataAdapter("select ad from kisiler", con);
DataTable dt = new DataTable();
da.Fill(dt);
dataGridView1.DataSource = dt;
con.Close();
Yukarıdaki kodları Form_Load kısmına yazdığımızda form açıldığında durum aşağıdaki gibidir. Yani veri tabanımıza bağlanıp verilerimizi DataGridViewimizin veri kaynağı haline getirdik. Ben burada sadece ad kolonunu aldım. Bu arada bu tür durumlarda kodlarınızı try catch bloğu içerisine yazarsanız daha sağlıklı bir kod olacaktır. Ayrıca açtığımız bağlantıların otomatik kapatılmasını sağlamak için bu kodları using bloğu arasına da yazabiliriz.
Şimdi gelelim arama işlemimize. Burada yukarıdaki anlattığımız LIKE komutundan faydalanacağız. ARA butonunun click olayının içerisine LIKE ile mysql komutumuzu yazıyoruz.
MySqlConnectionStringBuilder bag = new MySqlConnectionStringBuilder();
bag.Server = "localhost"; // Mysql veritabanına girerken yazdığınız server adı bende localhost
bag.Password = "teknoltan"; //kullanıcı parolam root sizde değişik olabilir..
bag.Database = "muhasebe"; // database ismimiz
bag.UserID = "teknoltan"; //Bu da kullanıcı adınız
MySqlConnection con = new MySqlConnection(bag.ToString());
con.Open();
MySqlDataAdapter da = new MySqlDataAdapter("select ad from kisiler where ad like '"+textBox1.Text+"'", con);
DataTable dt = new DataTable();
da.Fill(dt);
dataGridView1.DataSource = dt;
con.Close();
Kodlamada yaptığımız gibi Textbox kısmına bir isim yazıp ara butonuna tıkladığımızda veri tabanında o kelimeyi içeren kayıtları getirmesidir. Burada Form_Load kısmından farklı olarak sadece mysql komutunda like kullandık.