26 Kas 2006 Koleksiyonlar Kategori: C#.NET Etiketler: .NET FrameworkC# 0 Yorum Collectionlar bize Datasetlerden bağımsız çalışmamızı sağlar ve buda bize çok büyük performans kazancı sağlar. Collection lar arraylere benzer ve Classlar içerisine nesneleri yerleştirmemizi sağlar. System.Collection NameSpace'i içerisindeki Collection Classının bazıları; ArrayList BirArray CollectionBase DictionaryBase Hashtable Queue dir. Biz bu makalemizde CollectionBase sınıfına deginecegiz. Ilk olarak bir C# Windows application projesi açalım. Projemizde anlasılması kolay olsun diye SQL Server 2000 da Northwind içerisindeki Kategoriler tablosunu kullanacagız. Ilk olarak projemize bir adet Class ekliyoruz. Clasın adını Kategori olarak belirliyoruz. Buradaki amacımız kategori sınıfına ait bir kategori nesnesi olusturmaktır. Çünkü Collectionlar nesnelerden türerler. Classımızı ekledikten sonra veritabanımıza bir göz atalım. Veritabanımızda var olan alanlar, CategoryID, CategoryName ve Description alanlarıdır. Artık Kategori Classımızı yazabiliriz Kategori.cs using System; namespace Collection { public class Kategori { private int tKategoriNo; private string tKategoriAdi; private string tKategoriAciklama; public Kategori(){} public Kategori(string kategoriadi, string kategoriAciklama) { this.tKategoriAdi=kategoriadi; this.tKategoriAciklama=kategoriAciklama; } public int KategoriNo { get { return tKategoriNo; } set { tKategoriNo=value; } } public Kategori(){} public string KategoriAciklama { get { return tKategoriAciklama; } set { tKategoriAciklama=value; } } public string KategoriAdi { get { return tKategoriAdi; } set { tKategoriAdi=value; } } } } Kategori classı içerisinde Kategoriler tablosuna ait bir kategori nesnesi olusturduk. Simdi bu nesneye ait bir Collection olusturabiliriz. Projemize bir adet daha class ekleyelim ve adını KategoriCollection.cs verelim. using System; using System.Collections; namespace Collection { public class KategoriCollection:CollectionBase //Collection Classları CollectionBase sınıfından türer ve Collection base System.Collections namespace i içerisinde yer alır. { public KategoriCollection(){} /*Burada Collecsiyonunuza bir eleman eklemek için Add Fonksiyonu olusturuyoruz. Dısarıdan Kategori türünde bir kategori nesnesi alır.*/ public int Add(Kategori kategori) { return this.List.Add(kategori); } public int Add(string KategoriAdi, string KategoriAciklama) { Kategori Kategori =new Kategori(KategoriAdi,KategoriAciklama); return this.List.Add(Kategori); } public int Add(int kategorino, string KategoriAdi, string KategoriAciklama) { Kategori Kategori =new Kategori(kategorino,KategoriAdi,KategoriAciklama); return this.List.Add(Kategori); } /* Collectionumuzdan bir eleman silmek için bir void olustururuz. */ public void Remove(Kategori kategori) { this.List.Remove(kategori); } /*Kategori türünde this adında özel bir property olustururuz*/ public Kategori this[int index] { get {return (Kategori)this.List[index];} set{this.List[index]=value;} } } } Kategori Nesnemizi ve Kategori Collectionumuzu olusturdugumuza göre artık bu collectionu kullanabiliriz. Projemize bir adet daha class ekleyelim ve adını KategoriProvider.cs olarak verelim. using System; namespace Collection { public class KategoriProvider { /* Static bir Connection olusturulur */ private static System.Data.SqlClient.SqlConnection Cnn=new System.Data.SqlClient.SqlConnection(Genel.ConnectionString); public KategoriProvider(){} /* Verileri çekmek için GetAllKategori adında bir function olustururuz. Function KategoriCollection türndedir. */ public static KategoriCollection GetAllKategori() { KategoriCollection kc=new KategoriCollection(); System.Data.SqlClient.SqlCommand Cmd=new System.Data.SqlClient.SqlCommand ("Select * from Categories ",Cnn); System.Data.SqlClient.SqlDataReader Dr; Cnn.Open(); Dr=Cmd.ExecuteReader(); while (Dr.Read()) { kc.Add( (int)Dr["CategoryID"], (string)Dr["CategoryName"], (string)Dr["Description"] ); } Dr.Close(); Cnn.Close(); return kc; } } } Evet simdi her sey hazır. Artık collectionumuzu form üzerinde kullanabiliriz. Bunun için formumuza bir adet Datagrid ekleyelim. Gridimizi ekledikten sonra form yüklenirken verileri göstermek için Form_Load eventi içerisine asagıda kodları yazarsak projemizi tamamlamıs olacagız. private KategoriCollection Kc=new KategoriCollection();//Collectionumuzun instance ni olusturduk private void Form1_Load(object sender, System.EventArgs e) { Kc=KategoriProvider.GetAllKategori(); dataGrid1.DataSource=Kc; } Evet projemizi tamamladıgımıza göre artık projeyi çalıstırabiliriz. Iste sonuç Evet arkadaslar makalemizin sonuna geldik bir sonraki makalemizde görüsmek üzere. Yorum (0) Bu yazıya henüz yorum yapılmamış... Yorum Yaz * Ad Soyad: * Email: * Message: