ASP.NET
Network Akademi

Met Hostimg

“Bilgi paylaşıldıkça artar” sloganı ile .NET Platformuna ilişkin birikimlerin paylaşıldığı ASP.NET.TR Topluluğunda sizde “YAZAR” olmak için ; info@asp.net.tr e-mail adresine kendinizi anlatan bir e-mail göndererek başvuruda bulunabilirsiniz.

OleDb nesnelerini kullanma - Access

Ömer SAĞLAM
ASP.NET
09.03.2010 11:50:56
Hit : 9370

Merhaba Arkadaşlar.

Konumuz dahilinde sizlere oledb nesneleri hakkında bilgi vermeye çalışacağım ama öncesinde bir anımı sizinle paylaşmak istiyorum.

Yazılıma ilk başladığım yıllarda aynı heves ve hırsla kod yazmaya çalışıyordum ama çevremde ki arkadaşlarımın bana yardım etmek yerine işimi zorlaştırmaya çalıştıklarını farkettiğimde bir hayli zaman kaybetmiştim. Eğer kod yazmaya ihtiyaç varsa muhtemelen dinamik yapı kullanmanız gerekmekte ve hali hazırda bir kaç verinizde bulunmaktadır. Bu tür bir yapıda tabi ki interaktif bir dil ve onla birlikte kullanmanız gereken birde veritabanınızın olması gerekecektir. Bende bunu biliyordum ama bunu nasıl yapacağımı bilmiyordum. Sonucunda nemi oldu??

Traji komik şekilde geçen 3 gün sonunda veritabanına bağlanıp verileri çekmeyi başarmıştım  O benim en büyük zaferimdi. O zamanlar tabi access haricinde veritabanı bilmiyordum. Şimdiki gibi pek kaynakta yoktu açıkcası   Yazılım hayatımın en gergin 3 günü o zamanmış meğersem. Sonradan işi öğrenince hiç bir sorunla 3 gün uğraşmadım.  Bu işin püf noktalarını öğrenmekle ilgili ve konumuz dışında. Neyse fazla dağıtmadan kenardan devam edeyim. :)

İlerleyen zamanlarda access için yetersiz kelimeleri duymaya başlamıştım. Ne yapsam ki diye düşünmeye başladıktan kısa bir süre sonra mysql veri tabanı ile tanıştım. Çok fonksiyonel ve performanslı bir veritabanı gibi gelirken onun hakkındaki düşüncelerim de mssql ile tanışmamdan sonra ortadan kayboldu.

Zaman ilerledikçe veritabanları değişiyor ama kodlarda değişmese ne iyi olur diyesim geliyor. İşte bu makalemde sizlere bu türden bir güzellikten bahsediyor olacağım. Ole db nesneleri veri sağlayıcılarının adlarını değiştirerek bir çok veri kaynağına bağlanabileceğiniz bir sınıf aslında. Bunların başında access ve excel bağlantıları geliyor. Ole db nesneleri için en çok excel bağlantılarında yararlandığımı da belirtmek istiyorum. Kurumsal firmalar genelde excel ile verileri düzenli şekilde yedekledikleri için excel ile bağlantı kurabilmek ve üzerinde işlemler yapabilmek bazen hayati bir önemi olabiliyor.

Veri bağlantısı kurmak cümle kurmaktan daha kolay gerçekten. Örn bir adet access veritabanımız olsun ve access teki ilgili tablodan kayıtlarımızı sayfamıza yazdıralım. Bunun için sayfamda bir adet repeater kontrolü kullanacağım. Repeater demişken biraz bahsetsek iyi olur. Repeater kontrolü verilerinizi belli standartlarda kullanıcıya sunmanıza yarayan data kontrollerinin en ilkel, en hızlı ve en sade yoludur :) İçerisinde sadece itemTemplate kullarak istediğiniz şekilde listelemeler yapabilmenize imkan sağlar. İşe ilk olarak  bir access dosyası yaratarak başlayalım. Bilgiler aşağıdaki gibi olsun

Veritabanımızı "veritabani1.mdb" şeklinde kaydettik. İçine bir kaç veri eklemeyi unutmayın yoksa benim gibi boş veritabanından neden veriler gelmiyor diye kafayı yiyebilirsiniz.  Benden söylemesi :) veritabanımız hazır olduğuna göre artık arayüzümüze bakabiliriz. İlk olarak design kısmına bir göz atalım.

 

 

<asp:Repeater ID="Repeater1" runat="server">
    <ItemTemplate
>
        <%#Eval("Isim") %> - <%#Eval("Soyisim") %> <br
/>
    </ItemTemplate
>
</asp:Repeater>
 

Bu bölümdeki itemTemplate bize düzenlenebilir serbest bir alan sağlamakta. Eval metodu ile birlikte veritabanımızda bulunan sütun adına uyuşan bilginin sayfaya çağırılmasını sağladık. Yani isim soyisim yazacak sonrada bir alt satıra geçecektir. Sıra geldi kodlarımı yazmaya. Gerekli işlem için cs kısmına geçtik. Bu bölümde OleDb nesnemizi kullanarak verileri repeater kontrolüne aktaracağız. Konunun daha iyi anlaşılması için hemen açıklama getireyim.

Bir arkadaşınızın olduğunu düşünün. Adı da Can (aspnettr 1)  olsun. Ben Can a bir komut vereceksem ilk olarak onun beni farketmesini sağlarım. Örn Can bakarmısın dediğimi farzedin. Bu durumun yazılım bakımından karşılığı veritabanı ile bir bağlantı kurmaktır. Peki sonrasında ne yapmam gerekir? Tabiki Can a bir komut göndermeliyim ki ne istediğimi bilsin. Sonrasında da Can dan isteklerimi yerine getirip bana geri cevap dönmesini beklerim. Bu senaryo da aslında yazılım da veritabanları ile çalışmakta kullanılan mantıktan pek farksız olduğunu birazdan anlayacaksınız...

OleDb nesneleri ile çalışmak istiyorsanız ilk olarak sayfanıza using System.Data.OleDb; namespace ini eklemenizi öneririm :) Sonrasında aşağıda ki kodları yazabilirsiniz.

OleDbConnection baglaniyorum = new OleDbConnection("Provider=Microsoft.Jet.OleDb.4.0; data source=" + Server.MapPath("veritabani1.mdb"));
OleDbCommand komutSatirim = new OleDbCommand("select * from isimler", baglaniyorum);
baglaniyorum.Open();
OleDbDataReader okuyucu = komutSatirim.ExecuteReader();
Repeater1.DataSource = okuyucu;
Repeater1.DataBind();
okuyucu.Close();
baglaniyorum.Close();

Burdaki olayı kısaca özetleyerek devam edelim. Access veritabanımıza bağlanabilmek için OleDbConnection nesnemizi kullandık bu az önce bahsettiğim senaryoda ki Can a seslenme olayı gibi düşünebiliriz. Daha sonra OleDbCommand nesnemizi kullandık. Bunuda Can a bir istekte bulunma gibi düşünebilir. Can' ın isteğimiz sonucunda bize döndürdüğü değerleri OleDbDataReader ile aldık ve Design bölümünde sayfamıza attığımız repeater (Repeater1) kontrolümüze taşıdık.  

 

Oledb nesne kontrolü ile ilgili ilk makalemin sonuna geldik. Diğer makalemde tekrar görüşmek dileğiyle sağlıcakla kalın...




BU İÇERİĞE YORUMDA BULUNUN


Bu MAKALE'ye yorum yapabilmek için Üye olmalısınız ...!


BU İÇERİĞE YAPILAN YORUMLAR