DataTable Kullanımı

Home  >>  C#  >>  DataTable Kullanımı

DataTable Kullanımı

6
Mar,2013

0
 C#
Merhaba Arkadaşlar, DataTable sınıfından türetilen bir nesne, bir tabloyu ve elemanları bellekte kendisi için ayrılan yerde tutar.DataTable nesnesi içerisinde satırları  row koleksiyonuna ait DataRow , sütunları da colomns koleksiyonuna ait DataColumn nesneleri temsil eder.   güzel bir örnek yaparak DataTable nesnesinin nasıl çalıştığını anlamaya çalışalım. Senaryomuz: Dışarıdan Veri tabanı ve Tablo adlarını alalım. Tablo bilgilerini DataTable nesnemizin içerine atıp DataGridView nesnemizin içerisine yükleyelim. Tablodaki column sayısı kadar otomatik olarak formumuzun belirtiğimiz konumuna sütun adlarına uygun Label ve Textbox nesnesi yaratalım. Daha sonra textbox nesnelerinden girilen bilgileri DataTable nesnemize aktaralım ve DataGridView nesnemiz içerisinde gözükmesini sağlayalım.   İlk önce aşağıdaki gibi bir Windows formu oluşturalım. DataTableKullanımı (1) Yükle Butonumuzu kodlarımızı yazalım.
DataTable dt=new DataTable();//DataTable Nesnemizi tanımladık.
private void btnYukle_Click(object sender, EventArgs e)
{
SqlConnection Baglan = new SqlConnection("initial Catalog="+txtVeritabaniAdi+";Data Source=localhost;user id=sa;password=---------");

SqlDataAdapter da = new SqlDataAdapter("SELECT AdiSoyadi,Unvani,FirmaAdi From "+txtTabloAdi.Text, Baglan);

da.Fill(dt);
dgTable.DataSource = dt;//DataGridView Nesnemizin kaynağını DataTable olarak atadık.
dgTable.Refresh();

for (int i = 0; i < dgTable.Columns.Count; i++)
//DataGridView Nesnemizde Columns Sayısı kadar yeni Textbox ve Label Nesnesi oluşturduk
{
TextBox txtAlan = new TextBox();//Yeni Bir Textbox Nesnesi yaratıp özelliklerini belirliyoruz.
txtAlan.Name = "txt" + dgTable.Columns[i].Name;
txtAlan.Left = 100;
txtAlan.Top = 30 * i + 10;
txtAlan.Width = 150;
txtAlan.Height = 40;
this.Controls.Add(txtAlan);//Textbox Nesnemizi Formumuza Ekledik

Label lblAlan = new Label(); //Yeni Bir Label Nesnesi yaratıp özelliklerini belirliyoruz.
lblAlan.Name = "lbl" + dgTable.Columns[i].Name;
lblAlan.Text = dgTable.Columns[i].Name.ToUpper();
lblAlan.Left = 5;
lblAlan.Top = 30 * i + 10;
lblAlan.AutoSize = true;
this.Controls.Add(lblAlan);//Label Nesnemizi Formumuza Ekledik
}
}
Şimdi de oluşturduğumuz nesnelerime girilen bilgilerimizi DataTable nesnemize ekleyip DataGridView nesnemiz gösterelim.

private void Kaydet_Click(object sender, EventArgs e)

string Kontrol;
DataRow drow;
drow = dt.NewRow();

for (int i = 0; i < dt.Columns.Count; ++i)//DataTable Nesnemizdeki Sütun kadar döngümüzü döndürüyoruz.
{
Kontrol = "txt" + dt.Columns[i].ColumnName;//Textbox nesnemizi aldık
for (int j = 0; j < this.Controls.Count; ++j)//formumuzda Nesne sayısı kadar döngümüzü döndürdük
{
if (this.Controls[j].Name == Kontrol)//Textbox nesnemizi eriştiğimizde
{
drow[i] = this.Controls[j].Text;//Textbox nesnemizin içeriğini DataTable nesnemizdeki [i] Sütun'a ekledik
}
}
}
dt.Rows.Add(drow);//DataTable nesnemizde yeni satir açıp oluştuğumuz satırımızı içerisine ekledik.
dgTable.Refresh();
}

  Programımızı çalıştırıp veri tabanı adımızı ve tablo adımızı girelim ve yükle butonumuzu tıklayarak oluşan sonuca bir bakalım. DataTableKullanımı (4) Nesnelerimiz oluşturuldu şimdi bir de Textboxlarımıza bilgi girip kaydedip DataGridView nesnemizde gösterelim. DataTableKullanımı (5) Bilgilerimizin DataTable nesnemize yükleyip DataGridView nesnemizde gösterdik. Şimdi programımızı açıp aynı tablomuzu geri çağıralım. DataTableKullanımı (6) Göründüğü gibi programımızı kapattığımızda bellekte tutuğumuz DataTable nesnemizin içeriği uçtu gitti. Sağlıcakla Kalın… Software Developer Mustafa Demircioğlu www.mustafademircioglu.net mustafa.demircioglu@outlook.com

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir