13 Nisan 2010 Salı

BindingSource ve Kullanımı

BindingSource Windows.Form sınıfına ait olup bir çeşit veri bağlama türüdür. BindingSource satırlar arasında dolaşma işleminin, navigasyon(ileri,geri,ilk,son) gibi işlemlerin daha kolay yapılması açısından sunulmuş bir özellik olup BindingSource sınıfının bir üyesidir.İlk olarak seçilen satırın BindingSource ile  textbox lara nasıl bind edildiğini görelim.
Öncelikle hazırda mevcut olan veritabanına bağlanıp, verileri getirme işlemini gerçekleştirelim.
{
SqlConnection con=new SqlConnection("server=.\\SQLEXPRESS; database=DersTakip; uid=sa; pwd=123;");
SqlDataAdapter da=new SqlDataAdapter("SELECT * FROM tblOgrenciler",con);
DataTable dt = new DataTable();
da.Fill(dt);
dataGridView1.DataSource = dt;
}
Şimdi bindingSource kullanımına geçebiliriz.
BindingSource bs= new BindingSource();
bs.DataSource = dt;
Yukarda BindingSource nesnesini oluşturduk ve kaynağını yukarda kullandığımız table gösterdik.
Böylece kaynağını o tablodaki veriler olarak alıyor.
Tanımlama işlemi ve ardından table a bağlama işleminden sonra listede seçili olan veriler
aşağıdaki textboxların text özelliklerine aynı sıra ile yerleştirilir.

             textBox1.DataBindings.Add(new Binding("Text", bs, "OgrenciAdi"));
                textBox2.DataBindings.Add(new Binding("Text", bs, "OgrenciSoyadi"));
                textBox3.DataBindings.Add(new Binding("Text", bs, "OgrenciNumarasi"));
                textBox4.DataBindings.Add(new Binding("Text", bs, "OgrenciEmail"));
                textBox5.DataBindings.Add(new Binding("Text", bs, "BolumNo")); 
Bu işlemlerden sonra liste üzerinde yapılan dolaşım sırasında hangi satır üzerindeysek o satıra ait olan ad soyad numara bölüm ve email bilgileri textboxlara bind edilmiş olacak.

          Navigasyon işlemlerini BindingSource kullanarak yapmak istersek 



















bs.MoveFirst();   ilk kayıt









bs.MovePrevious();  bir önceki kayıt























bs.MoveNext();   bir sonraki kayıt 















 bs.MoveLast();  en son kayıt









 

Hiç yorum yok: