Geçen birşleyler araştırıken güzel bir yazı buldum orginal web sayfasına ulaşabilirsiniz alıntıdır. = http://www.capraz.net/ders_oku2.asp?ders_id=453&kat_id=59
DATASET
DataSetin alacağı methods, Constructors, Properties, Events lere bu sayfadan ulaşabilirsiniz= http://msdn.microsoft.com/en-us/library/system.data.dataset.aspx#Y0
Dataset Veritabanınızdan bağlantısız olan çalışan bir nesnedir. Saf XML tabanlı yapısı sayesinde web formları ve DotNet component'leri ile kusursuz bir entegrasyon sağlar. Bir kez veritabanına bağlandıktan sonra veriyi alır ve bağlantıyı keser. Elinizde Excel tablosuna benzer bir veri yığını olur. Aslında çok daha gelişmiş bir yapıdır ama bunu biraz daha ileride işleyeceğiz. Bu Excel tablosuna benzer yapıda; veriler üzerinde değiştirme, silme gibi işlemleri yapabildiğiniz gibi yeni kayıt da ekleyebilirsiniz. Bütün bunları yaparken database'e herhangi bir bağlantı kurmaz. Ancak siz ona kayıtları database'den güncelleme komutu verdiğinizde bağlantıyı kurar ve işlemi gerçekleştirir. Bu Server'ın kaynaklarını daha düzgün kullanmak için çok iyi bir yoldur.
Dataset'ler Server-Client tabanlı Windows uygulamaları geliştirdiğinizde .NET Framework altyapısı sayesinde programınız çalıştığı sürece server'dan dataset e çekilen bilgileri Client'ın memory'sinde XML olarak Cache'te tutar. Fakat bu durum web uygulamalarında biraz değişiyor. Dataset kendisini bu sefer server üzerinde cache'lenen bir nesne olarak gösteriyor. İstekte bulunduğunuz data server üzerinde bir kez bağlantı kurulduktan sonra aynı bağlantıdan gelen istekler Server cache'inden karşılanıyor.
Daha önceki yazımda dataset hakkında ufak bir bilgi verirken bu örneği kullanmıştım ama önceki makalemizi okumayanlar için tekrar yazmak istiyorum :
Farzedelim ki sizin yazdığınız Server-Client tabanlı bir uygulama var. Satış grubunuzdan birisi Laptop'uyla (bu bilgisayarın laptop olması örneğimiz açısından önemli) server'a network vasıtasıyla bağlandı ve ürünlerinizin fiyat listesini programdan çağırdı. Sayfalar halinde, belki 1000 tane ürün listelendi (bütün listeyi bir anda ekrana getirmediğimize dikkatinizi çekerim.). Fiyat listesi dataset sayesinde Client'ın memory'sinde cache'lenmiş oldu. Üzerinde istediği değişiklikleri yaptı ve network kablosunu çıkartarak server ile olan bütün bağlantısını kesti. Sonra satış yapmak üzere müşterisine gitti. Eeee??? Şimdi ne olacak? Normalde bütün bağlantıyı kestiği için ekran üzerinde gözükmeyen kayıtlara ulaşamayacak değil mi?
Hayır ulaşacak ! İşte Dataset in güzelliği burada; bütün bu data client memory'sinde cache'lenmiş durumda. Yani müşterisinde, sanki kendi network'üne bağlıymışcasına ürünlerini görebilecek ve bilgilerini müşterilere aktarabilecek.
Web uygulamalarında Windows uygulamalarına benzer biçimde Client Cache'inin kullanımına başlanması için Microsoft'un native .NET Framework destekli bir browser sürümü çıkarması gerekiyor galiba
DataSet ve Verileriniz Arasındaki Köprü : DataADAPTER !
Command nesnesi yardımıyla DataReader kullanarak sorgu gönderip sonucunu alabiliyorduk. Tabiiki istersek DataSet'imize veri doldurmak için DataReader nesnesini kullanabiliriz, ama bu pek kullanışlı bir yol olmaz. Üstelik DataSet için Disconnected (Bağlantısız) yapıya uygun başka bir nesne geliştirilmiş olmalı değil mi? Peki DataSet kullanmak istediğimizde ne yapmalıyız? İşte sorumuzun cevabı : DataAdapter !
DataAdapter Nedir?
ilgili web sitesi=http://msdn.microsoft.com/en-us/library/haa3afyz%28v=vs.80%29.aspx
DataAdapter Nedir?
DataAdapter nesnesi Connected ve Disconnected bağlantı yapısı ile veri arasında köprü vazifesi görür. Database'inizden çektiğiniz veriyi DataSet'inize doldurmak yada DataSet'inizde güncellenerek cache'lenmiş verilerinizi veri kaynağınızda da güncellemek için istediğiniz zaman DataAdapter nesnesini kullanabilirsiniz. Konuyu daha fazla dağıtmamak için şu anda bu nesnenin DataSet ile kullanımı ve veriye erişim konuları üzerinde yoğunlaşmalıyız.
Bilmeniz gereken bir-iki ufak ayrıntı da şunlar:
- DataAdapter Disconnected Data ile çalışmak için tasarlanmıştır.
- DataAdapter ve DataSet arasında direkt olarak bir bağlantı yoktur.
DataAdapter ile DataSet'e veri doldurulurken database bağlantısı kapalı ise açılır, dataset doldurulur ve işlem bittiği anda otomatik olarak kapatılır. Eğer bağlantı halihazırda açıksa herhangi bir hata vermeden işlemi yapar ve bağlantıyı kapatarak işlemini sonlandırır. Böylece bizlerin de fazla detayla uğraşmadan hızlıca işlemlerimizi yapmamızı sağlar.
Kullanımına gelince; Temelde iki adet argüman alır. Bunlardan birincisi DataSet'e doldurmak istediğimiz veriyi belirten "SELECT * from Nothwind" gibi bir SQL cümlesidir. Ikincisi ise bağlantıyı açıp veriyi almasını ve bağlantıyı kapatmasını sağlayan Connection String adını verdiğimiz database'e bağlantı cümlesidir. Son olarak DataSet'e veriyi doldururken de Fill() methodu kullanılır.
Aşağıdaki paragrafta DataAdapter'in temel olarak kullanımına dair örneği göreceksiniz.
DataSet Oluşturma ve DataTable yapısı
Dataset deyince aklımıza bir yapı daha gelmeli: DataTable !
Dataset'i bir excel dosyasına, DataTable'ı ise Excel içerisindeki WorkSheet'lere benzetebiliriz dersem herhalde DataSet yapısı aklınızda daha iyi oluşur.
Datatable, Dataset'in içerisinde birden fazla bulunabilen, kayıtların tutulduğu tablolardır. Dataset, DataTable'lara bir kap vazifesi görüyor; onları yeniden oluşturup birbirine kopyalayabiliyor, aynı dataset içerisinde bulunan DataTable'lar arasında ilişki kurabiliyor, hatta database olmadan direkt olarak cache'de DataTable'lar yaratabiliyor. Bu durum bizi elektronik ticarette alışveriş sepeti tarzında uygulamalar oluştururken bayaa rahatlatacak bir teknik. Tabii sadece bu bir örnek, kullanım alanının sınırsız olduğunu düşünüyorum. Bunun yanında sıralama, arama ve filtreleme özellikleri de var.
Bir Dataset'i oluşturduğunuz anda veritabanındaki bir tabloyu yada sorgu sonucunu atayabilirsiniz. Bu durumda Dataset kendi içerisinde otomatik olarak bir tablo oluşturacaktır.
web sitesine bakmakta yarar var örnekler için
İyi Çalışmalar Kolay Gelsin...
Software Engineering.
Categories
- vb (10)
- visual basic (10)
- Glassfish (9)
- java (8)
- Software engineering (5)
- pardus (4)
- C++ (3)
- Canım İstedi (3)
- OpenSolaris (3)
- jdk (3)
- Database (2)
- Mim (2)
- BackTrack (1)
- Basit Dos Komutları (1)
- Binary Tree Traversals (1)
- Dim (1)
- Hakkımda (1)
- Java öğren (1)
- Larry Ellison (1)
- Msn (1)
- Pardus geliştircileri toplantısı (1)
- Programlama Dilleri (1)
- Ramazan Bayramı (1)
- Steve Jobs (1)
- Streaming (1)
- VritualBox (1)
- Windows (1)
- film (1)
- merkez bankası (1)
- parallel Computing (1)
- virüs (1)
- xml (1)
- yazılım mühendisliği (1)
Links
01:31
Etiketler: Database, vb, visual basic
Kaydol:
Kayıt Yorumları (Atom)
0 yorum:
Yorum Gönder