Merhaba, bu yazıda sizlere BindingSource ve BindingNavigator'ün birlikte nasıl kullanılacağı hakkında kısaca bahsedeceğim.
Kısaca ikisini şöyle açıklayayım;
BindingSource, bir veri bağlama türüdür. Formdaki kontrolleri verilere bağlarken dolaylı bir katman sağlar. BindingSource' u veri kaynağına (datasource) bağlayarak ve ardından formdaki denetimleri de bindingsource'a bağlayarak gezinme, sıralama, filtreleme ve güncelleme de dahil, verilerle tüm işlemlerimizi gerçekleştirebiliriz. BindingNavigator ise veriler arasında kolayca gezinebilmemizi sağlayan bir araçtır.
Şimdi küçük bir örnekle bunu pekiştirelim. Projemizi oluşturalım ve formumuza 1 adet bindingsource, 1 adet bindingnavigator ve 1 adette datagridview ekleyelim ve alttaki resimdeki gibi formumuzu düzenleyelim.
Şimdi kodlarımızı yazalım ve adım adım inceleyim. Kodların tüm açıklamaları içerisinde mevcuttur.
using System;
using System.Data;
using System.Windows.Forms;
using MySql.Data.MySqlClient;
namespace BindingSourceDemo //kopyala-yapıştır yapacaksanız bu kısımda kendi proje isminizi yazın
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
MySqlConnection baglanti = new MySqlConnection("Database = test_veritabani; Data Source = localhost; User ID = root");
private void Form1_Load(object sender, EventArgs e)
{
MySqlDataAdapter listele = new MySqlDataAdapter("SELECT * FROM rehber", baglanti);
//Veritabanında verilerimi çektim
DataTable tablo = new DataTable();
listele.Fill(tablo);
//Çektiğim verileri oluşturduğum tabloya doldurttum
bindingSource1.DataSource = tablo;
//Tabloyu bindingSource'a bağladım
dataGridView1.DataSource = bindingSource1;
//bindingsource'u da datagridview'e bağladım
bindingNavigator1.BindingSource = bindingSource1;
//bindinsource'u hem de bindingnavigator'e bağladım. Bu sayede büyük veri içeren tablolarda kolaylıkla gezinebilicez
dataGridView1.AllowUserToAddRows = false;
//sadece bindingNavigator'un veri ekleme butonunu kullanabilmek için, datagridview'in satır ekleme özelliğini kapadım
}
}
}
Programımızı çalıştıralım ve sonucu görelim.
Gördüğünüz gibi kullanımı oldukça basit ve içinde birçok özellik barındıran BindingSource hakkında sorularınız olursa bana yorumlardan iletebilirsiniz. İyi Forumlar.