DataGridView da Sayfalama

Merhaba arkadaşlar. Bu makalemizde  DataGridView nesnesinde istenilen sayıda kayıt nasıl gösterilir ve kayıtlar arası geçişleri göreceğiz. Bu örnekte DataGridView da 5 li kayıt gösterimini sağlayacağız. Formumuza 1 tane DataGridView ve 4 tane Button   ekleyin. 


Screenshot






    







 Şekil 1

  











Şekil 2



Form1.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.OleDb;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        int deger, i;
        DataSet ds,ds2;
        OleDbDataAdapter da,da2;

        public Form1()
        {
            InitializeComponent();
            deger = 0;
          
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            OleDbConnection baglan = new OleDbConnection("Provider=Microsoft.Ace.Oledb.12.0;Data Source= northwind.accdb");
            da= new OleDbDataAdapter();
            OleDbCommand cmd = new OleDbCommand();
             ds = new DataSet();
            baglan.Open();
            cmd.CommandText = "Select ID, FirstName,LastName,JobTitle,City From Customers ";
            da.SelectCommand = cmd;
            cmd.Connection = baglan;
            //Datagridview da 0 inci kayıttan (deger=0) itibaren kayıtları 5 er gösterimini sağlıyoruz.
            da.Fill(ds,deger,5, "Customers");

            dataGridView1.DataSource = ds.Tables[0];

            count();
        }

        void count()

        {
           //kayit sayisini veritabanindan alacagiz.
            OleDbConnection baglan = new OleDbConnection("Provider=Microsoft.Ace.Oledb.12.0;Data Source= northwind.accdb");
            da2 = new OleDbDataAdapter();
            OleDbCommand cmd = new OleDbCommand();
            ds2 = new DataSet();
            baglan.Open();
            cmd.Connection = baglan;
            cmd.CommandText = "Select count (ID) From Customers ";
            i = System.Convert.ToInt32(cmd.ExecuteScalar());
            da2.SelectCommand = cmd;
          
            baglan.Close();

         
        }

        private void button1_Click(object sender, EventArgs e)
        {
            //Kayıt sayısını 5 er azaltarak datagridview da kayıtların
            //gösterimini sağlar
            deger = deger - 5;
            if (deger <= 0 )
            {
                deger = 0;
            }
            ds.Clear();
           da.Fill(ds, deger, 5, "Customers");
        }

        private void button2_Click(object sender, EventArgs e)
        {

            //Kayıt sayısını 5 er artırarak datagridview da kayıtların
            //gösterimini sağlar
            deger = deger + 5;

            if (deger >= i)
            {
                deger = i-1;
            }
            ds.Clear();
            da.Fill(ds, deger, 5, "Customers");
        }

        private void button3_Click(object sender, EventArgs e)
        {
            //İlk kayıtlar
            deger = 0;
            ds.Clear();
            da.Fill(ds, deger, 5, "Customers");
        }

        private void button4_Click(object sender, EventArgs e)
        {
            //Son kayıtlar
            deger = i-1;
            ds.Clear();
            da.Fill(ds, deger, 5, "Customers");
        }
    }
}
Bir makalenin daha sonuna geldik. Bir sonraki makalede görüşmek üzere. Bahadır ŞAHİN

About Bahadır Şahin

This is a short description in the author block about the author. You edit it by entering text in the "Biographical Info" field in the user admin panel.

2 comments:

Unknown dedi ki...

Sa. Bahadır bey SQL olarak nasıl yapabiliriz yardımcı olabilir misiniz

sinandrk dedi ki...

Selamlar, biz enterprise library data katmanını kullanarak veri çekiyoruz uygulamamızda, bu sayfalama ile ilgili bir iki sorum olacak, yanıtlarsanız çok makbule geçer :
1. burada gösterilen sayfalamanın düşünüldüğü gibi performansa bir katkısı var mıdır? varsa ne denli bi katkı sağlar?
2. Burada oledb'nin sunduğu DataAdapter.Fill() fonksiyonu bu tip parametreler alıyor ama sanırım bunlar SqlDataAdapter'de mevcut değil? SqlDataAdapter'de var olan Fill metodlarından birinde startRecord ve maxRecord şekli iki integer parametre alınıyor. sayfalama amacıyla kullanılabilir mi? sizin yaptığınızla aynı anlama gelir mi?
TŞEKKÜRLER

Öne Çıkan Yayın

GridView da Seçili Satırı DetailsView da Göstermek

Merhaba arkadaşlar bu makalemizde GridView nesnesi ile birlikte DetailsView nesanesini birlikte kullanacağız. GridView da seçili satırın de...