|
Bir önceki ADO.NET
yazımızda (ADO.NET de Bağlantısız Katmanda Çalışmak) ADO.NET in bize
getirmiş olduğu en iyi avantajlardan biri olan bağlantısız katmana
değinmiş ve klasik veri tabanı işlemleri gerçekleştirmiştik.
Örneklerimizdeki değeleri var olan bir veitabanından almamıştık. İşte
bu makalemizde hazırda var olan veritabanımızla(Access-MSSQL vs.)
bağlantı kurup değerlerimizi bu veritabanından almayı inceleyeceğiz.
Bağlantısız katmanla şu
ana kadar çalışmış olanlar eminim biliyordur, ancak yeni başlayanlar
için bir hatırlatma yapmak istiyorum. Bu makalemizde inceleyeceğimiz
bağlantılı katmanla, sadece veritabanından verileri alacağız daha
sonra bu bağlantılı katmanı kapatıp, tüm işlemlerimizi bağlantısız
katmanda gerçekleştireceğiz. Yani ADO.NET in getirmiş olduğu en iyi
özelliklerden biri olan bağlantısız katmanı da kullanmadan
geçmeyeceğiz. Bu şekilde uygulamalarımızın hızı 3-4 kat daha
performanslı olacaktır.
ASP ve ADO kullananlar
çok iyi bilirler, bağlantıyı sayfamızın başında açıp bir çok işlem
gerçekleştirirdik. Doğal olarak sayfanın en başından sonuna kadar
geçeen yükleme süresince bağlantı açık dururdu. Artık bağlantımızı
sayfa yüklenirken bir kere açıp, tüm verileri alıyoruz ve hemen
ardından bağlantımızı kapatıyoruz. Bundan sonrada veritabanı
işlemlerimizi bağlantısız katman üzerinde gerçekleştiriyoruz. Sanırım
bu fark performans açısından ne denli bir fark gösterdiğini açıklamak
için yeterli olacaktır.
Managed Provider :
Managed Provider en
basit haliyle anlatmak gerekirse, istenilen(access, mssql, mysql)
veritabanına bağlantı kurmak için gerekli olan, Microsoft tarafından
yazılmış, hali hazırda bulunan nesne yönemli programlama tekniğine
göre yazılmış bir sınıf kütüphanesidir.
ADO.NET de default
olarak 2 adet Managed Provider vardır.
Bunlardan ilki SQL Server .Net Data Provider; tahmin etmiş olduğunuz
gibi SQL Server 7.0 veya daha üstü veritabanlarına bağlanmak için
kullanılır. Microsoft'un bir ürünü olan ADO.NET, tabiki yine kendi
ürünü olan SQL Server a tam destek sağlıyor. Üstelik performans
olarakda diğer veritabanlarına göre çok daha iyi bir performans
kazandırıyor. Eh bunun olmasıda biraz normal değilmi :)
Bu işlemleri yapabilmeniz için sayfanıza System.Data.SqlClient
namespaceini eklemeniz gerekmektedir.
Diğer biri ise OleDB
.Net Data Provider. SQL Server haricindeki diğer veritabanlarına
bağlanmak için bu providerı kullanmaktayız. En genel kullanımda
bulunan Access dosyalarına veya Oracle veritabanlarına bağlanmak için
bu provider kullanılır.
Bu işlemleri yapabilmeniz için sayfanıza System.Data.OleDb
namespaceini eklemeniz gerekmektedir.
Yazımızın bundan
sonraki bölümünde Access veritabanına göre işlemler yapacağız. Bunun
için OleDB .NET Data Providerın kullanacağız. Ancak SQL Servere sahip
olanlar verilen kodlardaki oledb ler yerine sql yazdıkları taktirde
tüm işlemleri gerçekleşecektir. Tabiki sayfanıza ekleyeceğiniz
namespace i de değiştirmeniz gerekecektir.
(Örn : OleDbConnection yerine SqlConnection yazılmalı...)
OleDbConnection Sınıfı :
Bu sınıf sayesinde,
veritabanına bağlantı kurmamız için gerekli olan bağlantı cümlemizi
belirtiyoruz. Aşağıda Access veritabanı için bir bağlantı satırı
örneği verilmiştir. |