Makale Özeti

Bu makelmizde c#' ta sql ile çalışırken işlerimizi nasıl daha hızlı hale getirip zamandan kazanacağımızı anlatacağım.

Makale

   SQL TIME NEDİR?

   Sql time aslında benim verdiğim bir isim ya da bir yaklaşımdır diyelim. SQL Time' a ben c# ta sql komutlarıyla geçirdiğim zamana diyorum :) Ben c# ta fazla zaman kaybetmeden direk sql komutlarıyla uğraşmak ve sadece yapacağımız işe odaklanamak için bir dll dosyası geliştirdim. Aslında bu dll dosyasını siz de yazabilirsiniz zaten sadece 7kb bir boyutu var. Açık kaynak kodludur. Tüm programcılar geliştirmeye katılabilir. Bu dll dosyasının ismi VeriTabani.dll bunu projenize referans olarak ekledikten sonra kullanmaya başlayabilirsiniz. Makalenin altından örnek projeyi indirebilirsiniz.

 NASIL KULLANILIR?

Dll dosyasını projenize referans olarak ekledikten sonra bunu üzerinde çalıştığınız her form için tanımlanız gerekir.

Örnek:

using vt=VeriTabani.Access;

BAĞLANTI İŞLEMİ&npsp;Bu dll dosyasını kullanmadan önce access veritabanına nasıl bağlanıyorsanız burda da aynı şekilde bağlanıyorsunuz bir fark yok. Eğer programınızda birden fazla form varsa ve uygulamanızda mdi formlar varsa sadece ana forma bağlantı kodunu yazdığınız zaman diğer formlarda tekrar bağlantı kodunu yazmanıza gerek kalmıyor. Çünkü veritabanı.dll dosyası static olarak tanımlı ve içindeki fonksiyonlarda statik olarak tanımlı işte bu yüzden yavru değişken oluşturmadan kullanabiliyoruz. Tabi siz isterseniz dll dosyasının kaynak kodlarını tekrar derleyerek bunu iptal edebilirsiniz. Fakat bence böyle daha kullanışlı gibi. Dll yi yazarken bağlantı değişkenine c ismini vermişim bu yüzden oledbconnection nesnesi c olarak kaldı.

 vt.c.ConnectionString = "provider=Microsoft.jet.oledb.4.0; data source=veri.mdb; jet oledb:database password=123";

&npsp;Eğer şifre yoksa veritbanında jet ile başlayan kısımdan sonrasını silin. SELECT SORGUSUNUN KULLANIMIBunun için Listele komutunu kullanacağız iki parametresi vardır. Birincisi select sql komutu diğeri bu select sorgusunun gösterileceği datagridview nesnesidir. Yani şöyle:

vt.Listele("Select * From kisiler", dataGridView1);
 

Bu komut çalıştığında datagridview1 de kisiler tablosundaki tüm kayıtlar görünür. DİĞER İŞLEMLER(INSERT, UPDATE, DELETE, CREATE, DROP)SQL Time da diğer bir komut olan Sorgu_Çalıştır komutu ile select dışındaki diğer sorguları çalıştırabilmek için kullanılır. Yukarıda da verildiği gibi. Bir örnek yapalım kişiler tablosuna yeni kayıt girelim sonra da bunu silelim. Siz SQL biliyorsanız zaten sql sorgularında zorlanmazsınız bu makalede sql değil bu dll yi nasıl kullanacağınız anlatılıyor. Bu dll dosyası sadece size zaman kazandırıyor.

vt.Sorgu_Çalıştır("insert into kisiler(adi, mail, dil) values('ismail özel', 'programci42@gmail.com', 'C#,Vb.Net')");
 Gördüğünüz gibi tek satır. Şimdi bunu silelim.
vt.Sorgu_Çalıştır("Delete From kisiler Where mail='programci42@gmail.com'");
 Bu şekilde sadece sorgular çalışıyor ya da çalışmıyor. Yani sorgunun çalışıp çalışmadığını bilemiyoruz. Peki bunu nasıl yapacağız sorgunun doğru çalıştığını nasıl anlayacağız? Arkadaşlar sorgu_çalıştır komutu void metod değildir. Geriye bool değer döndürür. Bu ne demek? Yani eğer sorgu hatasız, doğru bir şekilde çalıştıysa geriye true eğer hata oluştuysa catch bloğuna düştüyse false değeri döndürür. O halde kodu şu şekilde yeniden yazabiliriz.
if(vt.Sorgu_Çalıştır("insert into kisiler(adi, mail, dil) values('ismail özel', 'programci42@gmail.com', 'C#,Vb.Net')")==true)
{
 MessageBox.Show("İşlem başarılı");
}
else
{
 MessageBox.Show("İşlem başarısız");
}
 

İşte bu kadar basit. Herhangi bi bir sorgunun çalışıp çalışmadığını bu şekilde if içine alarak anlayabilirsiniz. Aynı şekilde bu olay Listele fonksiyonu için de geçerlidir.

 

VERİTABANINDAN HERHANGİ BİR VERİYİ OKUMA Arkadaşlar bazen bir değişkene veritabanındaki bir tablodan veri çekmemiz gerekebiliyor. İşte bunun için bazı fonksiyonlar yazdım. Bunların biri Veri_Çek komutu bu komutu kullanarak veritabanından istediğiniz tablodan, satır, sütun bilgisini girerek veri alabiliyorsunuz.Mesela kişiler tablosundan ilk sıradaki kişinin ismini formdaki bir textbox' a yazdıralım.

textBox1.Text = vt.Veri_Çek("kisiler", 0, 1);

Veri_Çek komutundan geriye dönen değer string olduğu için herhangi bir dönüşüm işlemine tabi tutmadık. Fakat eğer alacağımız veriyi bir integer değişkene atmak istiyorsak işte o zaman vt.veri_çek komutunu Convert.ToInt32 komutuyla integer' a çevirmemiz gerekirdi. BUL_GETİR KOMUTUArkadaşlar bazen de bir alanı kullanarak başka bir alandan veri almamız gerekebiliyor. İşte bu durumlarda bul_getir metodu işimize yarıyor. Nasıl çalışıyor? Siz veriyi alacağınız ve bulacağınız tabloyu giriyorsunuz, ne arayacağınızı giriyorsunuz, hangi alanda arayacağınızı giriyorsunuz 1, 2 veya 3. alan burası integerdir., sonra aranan veri bulunduktan sonra size getirmesini istediğiniz alanı yazıyorsunuz. Bu kadar yani verdiğiniz tabloda, aramanın yapılacağı alanı verdiğinizde komut aradığınız veriyi o alanda arıyor bulduğunda ise veri almak istediğiniz alandaki bilgiyi arama yaptığı satırdan geri döndürüyor. Biraz karışık yazdım ama kodu yazıp çalıştırdığınızda bunu daha iyi anlayabilirsiniz. Daha iyi anlaşılması için bir örnek yapacağım yine. Mesela maili programci42@gmail.com olan kişinin isim bilgisini mesaj kutusunda görmek istiyorum bunu nasıl yapacağım? İşte bu şekilde:

MessageBox.Show(vt.Bul_Getir("kisiler", "programci42@gmail.com", 2, 1));
 

Arkadaşlar SQL Time da daha çok komut var, anlatacağım başka komutlarda var fakat şimdilik bu kadar. Bir sonraki makalede görüşmek üzere umarım bu makale size yardımcı olmuştur. Örnek Proje

Kisiler.rar