DataTable Nesnesi ve Kullanımı

Eyl 06, 2013

.Net ortamında geliştirilen uygulamalarda veritabanı ile ilgili işlemler sıkça yapılmaktadır. Bu işlemlerle ilgili olarak uygulamalarda veritabanına bağlanmak, veritabanındaki verileri uygulama ortamına çekmek ve bu verilerin, yapılacak olan işlemler için uygun hale getirilmesini sağlamak hemen her uygulamada rastlanmaktadır. "DataTable" nesnesi de bu gibi işlemler, yani veritabanından veri çekilmesi işlemleri için en kullanışlı nesnelerden biridir. DataTable sınıfı bellekteki tabloların satırlarını "DataRow" nesnesi ile, sütunlarını ise "DataColumn" nesnesi ile temsil eder. Aşağıdaki uygulamada bu sınıf nesneleri ve Datatable nesnesinin Find (Veri bulma) ve "Select" (Verileri filtreleyerek bulma) isimli iki ayrı metodu üzerinde durulmaktadır:

Uygulama: 

Uygulamanın aşağıda görülen kısmında SQL veri tabanı bağlantısı oluşturulup, veriler "Gridview" (Izgara Görünüm) 'e bağlanmaktadır. Böylece verilerin İnternet sayfasında görünümü sağlanmaktadır:
              
              Database vt = DatabaseFactory.CreateDatabase("conn");
              DataSet ds = new DataSet();
              ds = vt.ExecuteDataSet("sp_Listele");
              DataTable dtKisiler = new DataTable("Kisiler");
              dtKisiler = ds.Tables[0];
              gvKisiler.DataSource = dtKisiler;
              gvKisiler.DataBind();

Aşağıdaki kısımda DataTable sınıfının "Find"  metodu kullanımı gösterilmiştir. Böylece kutucuğa (textbox) girilecek "ID" numarasına karşılık gelen veri satırının bulunması ve İnternet sayfasına yazdırılması sağlanmaktadır:

              DataColumn[] pk = { dtKisiler.Columns["id"] };
              dtKisiler.PrimaryKey = pk;
              try
              {
                     int kisiID = Convert.ToInt32(txtId.Text);
                     DataRow satir = dtKisiler.Rows.Find(kisiID);
                     string satirBilgileri = "" + satir["Isim"].ToString() +
                                  " - " + satir["Soyisim"].ToString() + " - " + satir["Yas"].ToString() + 
                                  " - " + satir["Bolum"].ToString();
                     Response.Write(txtId.Text.ToString() + " no'lu kisi: " + satirBilgileri);
               }
              catch (Exception ex)
              {
                     Response.Write("Kisi Bulunamadı...!!!");
               }

Aşağıdaki kısımda ise DataTable sınıfının "Select" metodu kullanılarak kutucuğa (textbox) girilecek filtreleme işlemine uygun olan veri satırı veya satırlarının Gridview 'e bağlanarak İnternet sayfasında görünümü sağlanmaktadır:

              string ifadeninYeri = txtId.Text;
              try
              {
                     DataRow[] satirlar = dtKisiler.Select(ifadeninYeri);
                     DataTable dtGecici = dtKisiler.Copy();
                     dtGecici.Clear();
                     foreach (DataRow dr in satirlar)
                          dtGecici.ImportRow(dr);
                     gvKisiler.DataSource = dtGecici;
                     gvKisiler.DataBind();
               }
              catch (Exception ex)
              {
                     Response.Write("Dogru bir kriter giriniz...!!!");
              }

Aşağıdaki ekran çıktılarında ise bu uygulamanın İnternet sayfasındaki çıktıları gösterilmektedir:

  • Sayfanın ilk hali şu şekildedir:



  • "Find" metodunun kullanıldığı "ID No'ya Göre Ara" düğmesiyle kutucuğa girilen değer İnternet sayfasına yazdırılmaktadır, bu uygulamada  kutucuğa 7 değeri girilerek aşağıdaki sonuç elde edilmiştir: 



  • Son olarak "Select" metodunun kullanıldığı "Kritere Göre Ara" düğmesiyle kutucuğa girilen değere (bu uygulamada "Yas<24 and Yas>21" olarak girildi. Böylece 21 ve 24 yaşları arasındaki veri satırları bulunmaktadır.) uygun veri satırları İnternet sayfasına getirilmektedir: