C# – Veritabanı Sınıfı Oluşturma

Veritabanı sınıfı yardımıyla veritabanı işlemleri yalnızca birkaç satır ile yapılabilir hale gelecektir. OleDbConnection, OleDbDataAdaptor, OleDbCommand gibi nesneleri sınıf içinde yalnızca bir kere yazarak istenilen uygulamada veritabanı işlemleri rahatlıkla yapılacaktır.

Sık kullanılan veritabanı işlemleri kabaca şu şekilde listelenebilir:

  • Tablo çek: SELECT komutu ile kullanılabilir. Bir sınıftaki öğrenci listesi, hiç satılmayan ürünlerin listesi gibi satır ve sütunlardan oluşan, tablo yapısı halinde bir veri çekmek istenildiğinde kullanılan metottur.
  • Tek veri çek: SELECT komutu ile kullanılabilir. Sınıftaki öğrenci sayısı, bir öğrencinin adı, tek bir ürünün fiyatı veya benzer kategorideki ürünlerin fiyat toplamı gibi yalnızca tek bir veriye ihtiyaç duyuluyorsa kullanılan metottur.
  • Satır oku: SELECT komutu ile kullanılabilir. Veriler üzerinde satır satır ilerlemek üzere kullanılabilen metottur.
  • Komut çalıştır: INSERT, UPDATE ve DELETE komutlarıyla birlikte kullanılabilir.
  • Prosedür çalıştır: MSSQL’de oluşturulmuş bir saklı prosedürü (stored procedure) çağırmak için kullanılır.

Yukarıda listelendiği gibi, sırasıyla aşağıdaki metotlar sınıfımız içerisinde kullanılmaktadır. Metotlarımızın tamamı, tüm nesneler tarafından görünür olacağı için public tanımlanmıştır. Sınıf içerisinde açıkça görülen bu durum sınıflar detaylandırılırken göz ardı edilecektir. Her metot Parametre tipinde veri kabul eder. Parametre sınıfının içeriği yazının devamında verilmiştir.

TabloCek() metodu ile DataTable tipinde bir veri döndürülür. Bu metot iki parametre kabul edebilir. İlk parametrenin girilmesi zorunludur ve string tipindedir. İkincisi ise SQL cümlesi içinde kullanılması istenen SQL parametreleri varsa bunun için kullanılmaktadır, Parametre adında bizim yazdığım sınıf tipinde değer alabilir, kullanılması zorunlu değildir. Döndürdüğü değer tipi olan DataTable sayesinde tablo halindeki veriler üzerinde işlem yapılabilir. Ancak istenirse bir sınıftaki öğrenci sayısı, ürünün fiyatı gibi tek veri getirmek için de kullanılabilir. Bu durumda bir satır ve bir sütunluk tablo geri döndürülür. Tüm komutlar Parametre tipinde SQL parametresi kabul eder ancak bu parametrenin kullanılması zorunlu değildir.

TekVeriCek() metodu string tipinde veri döndürür. Tablo yapısına ihtiyaç duyulmadığı durumlarda oldukça kullanışlıdır. string tipte SQL komutu kabul eder, Parametre tipinde SQL parametresi kabul edebilir ancak zorunlu değildir. Yalnızca sınıftaki öğrenci sayısı, tek bir ürünün fiyatı, numarası bilinen bir öğrencinin adı gibi verilerin elde edilmesi gerektiğinde kullanışlıdır.

SatirOku() metodu, veriler üzerinde satır satır ilerlememizi sağlayan OleDbDataReader nesnesi tipinde veri döndürür. string tipinde SQL cümlesi, Parametre tipinde SQL parametresi kabul edebilir ancak zorunlu değildir.

KomutCalistir() metodu ile sık kullanılan INSERT, UPDATE ve DELETE gibi SQL komutları çalıştırılır. Etkilenen kayıt sayısı int tipinde döndürülür. Örneğin ürün kategorisi “kırtasiye” olan ürünlere %10 zam yapıldığında 350 gibi kaç kaydın bu sorgu sonucunda etkilendiğini geri döndürür. string tipinde SQL komutu kabul eder, Parametre tipinde SQL parametresi kabul edebilir ancak zorunlu değildir.

ProsedurCalistir() metodu ile MSSQL’de tanımlı stored procedure‘ler çalıştırılabilir. object tipinde veri döndürür. Değer döndürülmesi istenmiyorsa üçüncü parametre boş bırakılabilir, varsayılan değeri false olarak ayarlanmıştır. string tipinde SQL komutunu ilk parametre olarak kabul eder. SQL parametresi kabul eden Parametre tipinde ikinci parametrenin girilmesi zorunlu değildir. Prosedür çalıştırıldıktan sonra dönen verinin elde edilmesi isteniyorsa son parametre true olarak ayarlanmalıdır.

Veritabanı sınıfının bir adet kurucu metodu vardır. Nesne oluşturulurken bağlantı cümlesinin gönderilmesi gerekmektedir. Bağlantı cümlesinin nasıl elde edileceği Veritabanı Bağlantı Cümlesi (ConnectionString) Oluşturma yazısında anlatılmıştır.

Veritabanı Sınıfı

Parametre Sınıfı

Parametre sınıfının üç farklı kurucu metodu vardır. Değerlerin başlangıçta gönderilmesi zorunlu değildir. string tipinde tek bir parametre alabilir veya veriler nesne oluşturulurken virgüllerle ayrılarak gönderilebilir. Parametre sınıfından nesne türetildikten sonra parametre eklemek ve istenirse bunları listelemek mümkündür.

 

 

About Hürkal HÜSEM

2010 yılından bu yana Bilişim Teknolojileri Öğretmeni olarak meslek liselerinde görev yapmaktayım.

View all posts by Hürkal HÜSEM →

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.