Merhaba,Bu yazımda ASP.NET ile sayfalama işlemleri hakkında bilgi vereceğim. Sayfalama işlemlerini veritabanımızda çok veri olduğu zaman kullanmaktayız. Benim yapacağım örnekte DataList ile sayfalama yapacağım. Kodumuzda en önemli kısım ise SqlDataAdapter’ın Fill() metodudur. Fill metodunun parametreleri arasında kaçıncı kayıttan başlanacağı ve kaç kayıt gösterilereceği gibi bizim işimize oldukça yarayan parametreler bulunmaktadır. Kaçıncı sayfada olduğumuzu QueryString ile almaktayız. Kodlar ise aşağıdaki gibidir :using System;using System.Data;using System.Data.SqlClient;using System.Configuration;using System.Linq;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.HtmlControls;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Xml.Linq;///

/// Summary description for Sayfalama///

public class Sayfalama{//DataList’te bulunan verileri sayfalama kodu//Veriyi Çekme/*int sayfano = 1;if (String.IsNullOrEmpty(Request.QueryString[“sayfa”].ToString())){sayfano = 1;}sayfano = int.Parse(Request.QueryString[“sayfa”].ToString());//Bu kısımdaki 3 sayısı bizim sayfa başına göstereceğimiz kayıt sayısıdır. Bu kısmı kendinize göre değiştirmeniz gerekmektedir.DataList1.DataSource = Sayfalama.DataListVeriGetir(sayfano, 3, “isimler”, new System.Data.SqlClient.SqlConnection(@”Data Source=.sqlexpress; Database=master;Integrated Security=true”), “select * from isimler”);DataList1.DataBind();int toplamkayit = Sayfalama.TablodakiKayitSayisi(“isimler”, new System.Data.SqlClient.SqlConnection(@”Data Source=.sqlexpress; Database=master;Integrated Security=true”));//Bu kısımdaki 3 sayısı bizim sayfa başına göstereceğimiz kayıt sayısıdır. Bu kısmı kendinize göre değiştirmeniz gerekmektedir.decimal sayfanumaralari = Math.Round((decimal)toplamkayit / 3);LinkButton sayfalar;for (int i = 1; i <= sayfanumaralari; i++){sayfalar = new LinkButton();sayfalar.Text = i.ToString();sayfalar.Attributes["href"] = "default.aspx?sayfa=" + i.ToString();Panel1.Controls.Add(sayfalar);}*///Verilen tablodaki toplam kayıt sayısını geri döndürür.public static int TablodakiKayitSayisi(string TabloAdi, SqlConnection BaglantiCumlesi){string SqlKomut = "SELECT COUNT(*) FROM " + TabloAdi;SqlCommand komut = new SqlCommand(SqlKomut, BaglantiCumlesi);int KayitSayisi = 0;try{BaglantiCumlesi.Open();KayitSayisi = int.Parse(komut.ExecuteScalar().ToString());}finally{BaglantiCumlesi.Close();}return KayitSayisi;}//Verilen SQL cümlesine uygun veri setini geri döndüren fonksiyon//SayfaNo = Kaçıncı sayfa olduğunu belirtir.//KayitSayisi = Sayfada kaç tane kayıt gösterileceğini belirtir.//TabloAdi=Veritabanındaki tablo adı.//BaglantiCumlesi=SQL bağlantı cümlesi.//SqlCumle = Select sorgusupublic static DataSet DataListVeriGetir(int SayfaNo, int KayitSayisi, string TabloAdi, SqlConnection BaglantiCumlesi, string SqlCumle){SqlDataAdapter da = new SqlDataAdapter(SqlCumle, BaglantiCumlesi);DataSet ds = new DataSet();int baslangic = ((SayfaNo * KayitSayisi) - KayitSayisi);da.Fill(ds, baslangic,KayitSayisi, TabloAdi);return ds;}}
Bizim bu kodumuzda sayfa başına 3 adet kayıt gösterilmektedir.