Paylaş ! Facebook Paylaş ! Twitter Paylaş ! Google+ Paylaş ! Reddit Paylaş ! Pinterest Paylaş ! Linkedin Paylaş ! Tumblr Merhabalar arkadaşlar. Ben Ferhat .Şimdi sizlere C# ile Access veri tabanı uygulamasındaki bilgi alışverişini aktarmak için gerekli olan SQL komutlar ile alakalı bilgi vereceğim. Tabi bu sorgular sadece Access için değil tüm SQL server komutlarıyla aynıdır. İnternetten hazır komutları bulmak yerine SQL komut mantığını kafanızda oluşturursanız veri tabanı ile çok rahat bir şekilde veri alışverişinde bulunabilirsiniz. Örnek SQL sorgu : “SELECT * FROM veri WHERE dtarih > Format(“10.01.1990″,”dd.mm.yyyy”) AND dtarih < Format(“10.1.1999″,”dd.mm.yyyy”) AND ogrenci = true ORDER BY ad ;” Şimdi bu sorguyu incelemek istersek : (SELECT * FROM veri) -> “SELECT” seçmek , “*” hepsini , “FROM veri” ise veri tablosundan demektir. Anladığınız üzere komutun açıklaması : “veri tablosundaki bütün listeleri seç” anlamına gelmektedir.”*” işareti yerine direk listenin başlığını yazabiliriz. Örnek olarak : “SELECT id ,ad,soyad FROM veri ” gibi.. ( WHERE) -> Sorgu için gerekli parametredir.Buradan sonra seçtiğiniz listelerin içinde örnek olarak adı Mehmet veya Mahmut , yaşı 15 ile 19 yaş arası olanları seç anlamına gelen sorgu biçimidir. Buradaki sorguyu dönüş olarak “TRUE-FALSE” gibi düşünebilirsiniz. Bundan sonra gelen sorgu sonucu “FALSE” olursa satırı seçmez. Sonuç “TRUE” olursa satırı seçer. Kafanızda tam canlandırabilmeniz için şu sorgu örneğini veriyorum: if(icerik_var==true) { liste.append(“Bu satırda aradığınız sonuç içermektedir”); } Bence anladın… ( dtarih > Format(“10.01.1990″,”dd.mm.yyyy”)) -> burada yazılı olan sorgu şu şekildedir; dtarih liste başlığı altındaki kayıtlardan format içine yazılan tarihten büyükse tabloya geçişine izin verilir ve S1 = 1 olur (AND ) -> bu ifadenin anlamı bir önceki sorgu dönüşü 1 ve sonraki sorgunun dönüşü 1 olursa tabloya aktarmasına izin verir. dtarih < Format(“10.1.1999″,”dd.mm.yyyy”)-> S2 =1 , AND (ogrenci = true)->S3 = 1 burada ise ogrenci listesindeki kutucuk tikli ise true , tiksiz ise false anlamına gelir. Bizde diyoruz ki öğrenci olan kişileri bize göster. ( ORDER BY ad) -> burada ise sütunları ada göre sırala sorgusunu yazdık. Şimdi net anlamak için S1 * S2 * S3 = TRUE ise bu sütunu tabloda size gösterir. S1 * S2 * S3 = “FALSE” ise bu sütunu tabloda size göstermez. Yani sorguda “and” sorgusu içinde herhangi biri FALSE ise tabloda göstermez. sorguda “and” yerine “or” kullansaydık dönüş sorgusu S1 + S2 + S3 = TRUE şeklinde olacaktı ve herhangi biri olursa o satırı gösterecekti. Yukardaki sorgumuza göre 10 satırlık listeler içinden dtarihi 1990 ile 1997 arasında olanları , öğrenci olan herkezi isimlerine göre sıralayarak bize gösterdi. Sorgu mantığı tamamen ingilizce konuşur gibi yazılıyor. X tablosoundaki Y[] listelerini satırlarında Z içeriği varsa göster. SELECT Y[] FROM X WHERE Z==TRUE Bu mantık ile tabloya yeni satır ekleme : INSERT INTO veri (ad,soyad,dtarih,sehir) VALUES (“Yeni”, “Kayıt” ,Format(“19.04.1992” , “dd.mm.yyyy”) , “Eskişehir”) şeklinde olur. “Veri tablosu(liste başlıkları) içine oluştur , değerler(başlıklar altına eklencek degerler)” şeklinde kafamızda oluşturalım. Tablo adından sonra hangi sütunlara değer yazacağımızı belirliyoruz ve VALUES yazısından sonraki parantezde ise sıra ile ilk parantezdeki değerlerin yerlerine yazarak yeni bir yeni bir satır oluşturur. Tablodaki bir satırı güncelleme : UPDATE veri SET ad=”İsim” WHERE ad=”Yeni” Burada demek istenilen ad listesindeki değere “isim” yaz deniyor. where den sonrada adı üzerinde nerede olduğunu belirtmek için ad sütununda isimi yeni olanları gösteriyoruz. Yani adı “Yeni” olan herkesin adını “İsim” olarak değiştirilir. Tablodaki satırı silmek için ise : DELETE FROM veri WHERE ad=”İsim” Burada demek istenilen Veri tablosunda ad listesindeki satırlardaki değerlerde “isim” yazan herkesi sil demek olur. C# ile bağlantı komutu yazmak için bu sorguları bilmeniz gerekmektedir. Bir sonraki paylaşımımda C# tarafında bilmemiz gereken herşeyi anlatarak sizleri veri tabanı hakkında daha fazla bilgi vereceğim. Ama ilk önce yukardaki komutları anlamaya çalışınız. Bir kodu internette araştırarak bulabilirsiniz evet ama kendi bilginiz doğrusunda kodlayabilme duygusu bir başkadır. Kopyalamayın , kodlayın! Okuduğunuz için teşekkürler görüşmek üzere…