Collections
26.11.2006 00:00:00
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.
Puan:
     


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 oluşturduk.
Şimdi bu nesneye ait bir Collection oluşturabiliriz. 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 oluşturuyoruz. Dışarı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 oluştururuz. */

public void Remove(Kategori kategori)
{
this.List.Remove(kategori);
}

/*Kategori türünde this adında özel bir property oluştururuz*/

public Kategori this[int index]
{
get {return (Kategori)this.List[index];}
set{this.List[index]=value;}
}
}
}

Kategori Nesnemizi ve Kategori  Collectionumuzu oluşturduğumuza 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 oluşturulur */

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 oluştururuz. 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 şimdi her şey 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 aşağıda kodları yazarsak projemizi tamamlamış olacağız.


private KategoriCollection Kc=new KategoriCollection();//Collectionumuzun instance ni oluşturduk


private void Form1_Load(object sender, System.EventArgs e)
{
Kc=KategoriProvider.GetAllKategori();
dataGrid1.DataSource=Kc;
}


Evet projemizi tamamladığımıza göre artık projeyi çalıştırabiliriz.

İşte sonuç



Evet arkadaşlar makalemizin sonuna geldik bir sonraki makalemizde görüşmek üzere.

 
Puan: