Bugün sizlerle ADO.NET 'in ne olduğunu nasıl kullanıldığını öğreneceğiz.
Öncelikle nedir bu ADO.NET derseniz uygulama ile Veritabanı arasındaki bir köprüdür diyebiliriz.Uygulama geliştirirken ister istemez verilerimizi saklamak için bir kaynağa ihtiyaç duymuşuzdur. Bu kaynağı .txt uzantılı bir dosyada tutmak istemiyorsanız ( ki istemeyeceğinizden eminim) veritabanı sizler için güzel bir kaynak olabilir.
Ben bu yazımda MSSQL kullanacağım,neden diye soracak olursanız,sormayın.
Programlama dillerinde olduğu gibi veritabanında da milliyetçilik yapılmasından hoşlanmam,canım öyle istedi diyelim :)
Şimdi girizgahı geçtiğimize göre gelelim kodlamaya.
Öncelikle bağlanmamız için elimizde bir veritabanı olmalı.Bunun için ben Deneme isimli bir veritabanı oluşturdum ve içerisinde de bir adet şirin mi şirin "Product" tablom var.
Bu "Product" tablom üzerinde yapabileceğim işlemlere gelirsek şimdilik CRUD(Create-Read-Update-Delete) olarak tanımlanan ekleme-silme-güncelleme ve okuma işlemlerini yapacağız.
Heyecanlandıysanız başlayalım :)
Visual Studio içerisinde bir Console Application açalım.
Ardından açtığımız uygulamaya Product isimli bir class ekleyelim.
Şimdiiiiii, hadi gelin veritabanımızdaki Product tablomuzu bu class içerisinde örnekleyelim.
Evvet şu an tablomuzun bir örneğini de uygulamamız içerisinde oluşturmuş olduk :)
Şimdi sıra geldi kuru fasülyenin faydalarına dostlar.
MSSQL ile uygulamamızı birbirine bağlayalım artık di mi,bunun için ihtiyacımız olan bir dll var.
System.Data.SqlClient dll ini class ımıza import etmemiz gerekiyor.
Bunu da hallettikten sonra gelelim Veri tabanına kayıt ekleme metodumuza :)
Evvet dostlarım şimdi gelelim açıklamalara.Satır satır gidelim dilerseniz.
İlk olarak Insert isminde Product tipinde parametre alan bir metod tanımladık.
sonrasında App.config dosyasında tanımladığımız bir bağlantı cümlesini burada config dosyasından okuduk.
config dosyası nedir derseniz uygulama içerisinde kullanacağınız parametreleri dinamik olarak tuttuğunuz yer diyerek şimdilik kısaca geçip bir başka yazıda daha detaylıca anlatalım :)
Devam edelim,bağlantı cümlesini alıyoruz demiştik en son.
Bağlantı cümlesi(connection string) sizin bilgisayarınızda bulunan MSSQL i tanıtan cümledir.Bunu nasıl bulacağım derseniz https://www.connectionstrings.com/ adresinden faydalanabilirsiniz.
Gelelim ikinci satıra.İkinci satırda MSSQL üzerinde çalışacak olan komutumuzu tanımlıyoruz burada kullandığımız '@' işaretleri parametre olarak bu değerleri set edeceğimizi gösterir.
Ardından using içerisinde bir SQL bağlantı nesnesi oluşturuyoruz.bu bağlantı nesnesinin constructorlarından birinde sizden parametre olarak bağlantı cümlesini istiyor.Biz de parametre olarak bağlantı cümlemizi veriyoruz ve hemen altındaki satırda Open() metodu ile bağlantımızı açıyoruz.
Bağlantımızı başarıyla açmış bulunmaktayız.Şimdi sıra geldi komutumuzu oluşturmaya.
yine using içerisinde yeni bir SQL komutu oluşturuyoruz ve bu sefer de parametre olarak 'bana çalıştıracağım komut cümlem ile bu komutu çalıştırmam için gerekli bağlantıyı ver' diyor.
Biz de kendisinin isteğini yerine getiriyoruz ve hemen sonrasında sıra geliyor parametreleri eklemeye.
Sırayla alt alta metodumuza parametre olarak gelen ürünümüzü komutumuza ekliyoruz.
Ardından da ExecuteNonQuery() metodu ile son kılıç hamlesini vurarak komutumuzu çalıştırıyoruz.
Evet dostlar biliyorum biraz uzun oldu açıklama ama merak etmeyin diğer metodlar böyle olmayacak :) artık bağlantı mantığını öğrendiğinize göre geçelim güncelleme işlemine :)

Kod üzerinden görebileceğiniz gibi Insert işleminden çok da farklı bir iş yapmadık sevgili dostlarım o yüzden açıklama yapmakla vakit kaybetmeden silme işlemine geçiyorum :)
Evet dostlarım buradaki fark metodumuzun parametre olarak id'yi alması.Neden diyecek olursanız veritabanında her kaydın eşsiz(guid) olan değeri id si olduğundan diğer kolon bilgilerine ihtiyacımız yok.Tabi bu sizin uygulamanızda kuracağınız senaryoya göre de değişiklik gösterebilir.
Son olarak gelelim Okuma işlemine
Çok uzadı di mi dostlar merak etmeyin hemen bitiriyorum.
Okuma işleminde okuduğumuz her bir satırı bir ürün olarak düşünüyor ve bu ürünleri Product tipinde bir listede tutuyoruz.
Okuma işlemi için kullandığımız class ise SqlDataReader adından da anlaşılacağı üzere okuyucumuz.
komut nesnemizi okuyucu olarak çalıştırdığımızda bize SqlDataReader tipinde dönüş yapıyor. Biz de while döngüsü içerisinde her okuduğu satırı bir ürün olarak görüp listemize ekliyoruz.
Satırı okurken gelen değerin boş olup olmadığını kontrol etmeyi de elbet unutmuyoruz :)
Evet sevgili dostlar uzun bir yazı oldu farkındayım,umarım sizleri çok sıkmamışımdır.
Video olarak anlatmadığımdan sadece nokta atışı yaparak belirli noktalara değindim ancak sorularınız olursa yorum kısmına yazabilirsiniz.
Bir sonraki yazıda görüşmek dileğiyle şimdilik hoşçakalın.
Hiç yorum yok:
Yorum Gönder