Osman KURT

Yazılım Uzmanı | MVC Eğitmeni

ASP.Net de DataList ve Repeater için Class Oluşturmak

Arkadaşlar asp.net projemizde en çok kullandığımız şeylerdir. DataList ve Repater kullanmak. Normal yollardan bu araçları kullnarak verileri listelemek için veritabanına bağlanmak sorgumuzu yazmak datatable kullanmak gibi türlü türlü işlem yapmaktayız.Tabiki bunu bütün bağlantılarda yapıyoruz birde. Ama yacağamız bir class la bunu tamamen ortadan kaldırabiliriz. Şimdi bu yazımda size 2 adet class göstreceğim. ve bu class ları yazdıktan sonra işimizin nasıl kolaylaştığını gösreceksiniz. İlk olarak veritabanı bağlantımızı sağlamak için baglan adında bir class oluşturalım. ve içine şu kodlarımızı yazalım.

public static SqlConnection baglanti = new SqlConnection("server=loclahost;uId=kullaniciadi;database=dbadi;pwd=sifre;multipleactiveresultsets=true");

Bu classımız bu kadar artık veritabanımıza bağlanırken Connection yerine bu classımızı kullanacağız.

Şimdi sıra verileri listelememiz için kullanacağımzı classımıza geldi. Gelin onuda yazalım. Bu classımızın adıda DataListDoldur olsun.

static public DataTable DataTableAl(string sqlcumle)
{
if (baglan.baglanti.State == ConnectionState.Closed)
{
baglan.baglanti.Open();
}
SqlDataAdapter adap = new SqlDataAdapter(sqlcumle, baglan.baglanti);
DataTable dt = new DataTable();
adap.Fill(dt);
return dt;
}

Bu classımız da bu kadar arkadaşlar. Şimdiki işlemimiz bu classı kullanarak verilerimizi listelemek.

Ön sayfamızda <%#Eval("alanadi") şeklinde Datalist <ItemTemplate> içinda tanımlamalarımızı tamamldıktan sonra cs tarafında yacağımız kod şöyle;

Repeater1.DataSource = datalistDoldur.DataTableAl("select * from Sayfalar where AktifMi=1 and root=0");
Repeater1.DataBind();

DataList2.DataSource = datalistDoldur.DataTableAl("select * from Haberler where AktifMi=1 order by HaberId desc");
DataList2.DataBind();

2 yapımız daaynı şekilde kullanılmaktadır. Siz hangisini tercih ederseniz bilemem kullanmakta özgürsünüz.

Görüşmek Üzere

Osman KURT

Yazılım Geliştirici ve Grafiker

Yorumlar (5) -

  • Melih MERCAN

    04.04.2012 06:31:19 | Yanıtla

    Osman bey gönderdikleriniz ve bu konunun yararlı olacağından eminim teşekkürler ilginiz için

    yalnız sql kodlar arasında  - AktifMi=1 - - root=0 -  var bunlar ne anlamda açıklayabilir misiniz? dbde sayfalar tablosundaki kolonlardan mı aceba.

    • osmankurt

      04.04.2012 08:24:47 | Yanıtla

      Merhaba Melih;

      AktifMi ve root gibi değerler benim sql tablomda ki alanlar onları örnek olması için yazdım sen kendi tablonda ki değerlere göre onları editleyeceksin.

  • özgün

    30.04.2012 15:27:01 | Yanıtla

    Merhabalar bende bir soru sormak istiyorum
    örnegin şu şekilde bir yapı istesek :
      "select * from Haberler where AktifMi=@akfit and bimemne=@bilmem"  diyerekten
    sorgu.Parameters.AddWithValue("@aktif", TextBox1.Text);
    sorgu.Parameters.AddWithValue("@bilmem", TextBox2.Text);
    tabi paremetreleri istediğimiz kadar ekleme şansına sahip olsak
    bunun için nasıl bir class yapısı yazılabilir ? rica etsem bununla ilgili bir örnek verirmisiniz ?

    • osmankurt

      30.04.2012 15:41:27 | Yanıtla

      Merhaba Özgün,
      amacının ne olduğunu anlayabilirsem sanırım yardım edebilme açımdan daha iyi olacaktır.

  • özgün

    01.05.2012 09:08:22 | Yanıtla

    Tekrardan merbaba...
    aspx.cs sayfamda sqlcumlesinin içinde parametre belirtmek istiyorum (injection olmaması için) bu parametreler değerlerini dışarıdan alıcak  örnegin textboxdan vb.
    işte bu durumda yazdılacak class nasıl olmalı ?
    merak ettiğim bu...

Loading