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 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
2 comments:
Sa. Bahadır bey SQL olarak nasıl yapabiliriz yardımcı olabilir misiniz
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
Yorum Gönder