DataView nesnesi veritabanımızdan elde ettiğimiz tablonun üzerinde çeşitli işlemler yapmak için kullanabiliriz.Bunlar; işlem anında istenilen tek kayıtın getirilmesi gibi yazılan sorgu sonucuda bilgileri DataView nesnesini kullanarak görüntüleyebiliriz.
Mesela basit bir örnek üzerinden konuşursak , textBox'ımıza girdiğimiz sorgu sonucu dataGridView'de o sorgumuza uyan kayıtları listeleyelim.Programda id'si 7 ve 7'den büyük olan tüm kayıtları getirmek isteyelim.Programın çalışır hali aşağıdaki gibi olacaktır.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace DataViewKullanimi
{
public partial class Form1 : Form
{
//veritabanımızdaki bilgileri atacağımız tablo
DataTable dt;
//tablomuz ile veritabanımızı birleştiren nesnemiz
SqlDataAdapter da;
public Form1()
{
InitializeComponent();
//Formumuzun ctor'unda table nesnemizi tanımlayıp bu tablomuza ogrenciler ismini veriyoruz.
dt = new DataTable("ogrenciler");
}
private void BilgileriListele(string sorgu)
{
//Adapter nesnemize veritabanımıza atacağımız sorguyu girdikten sonra connection ayarlarını belirterek database adını ve bağlanma şeklini belirtiyoruz.
da = new SqlDataAdapter("select * from ogrenciler", "database=OgrenciYonetim; integrated security=true");
//veritabanımızdaki bilgileri dt isimli datatable nesnemize atıyoruz.
da.Fill(dt);
//sorgu atarken veritabanına tekrar bağlanmadan dt table nesnemizde bulunan veriler üzerinden sorgu atacağız.DataView nesnemizi oluşturup datatable nesnemizi,filtre özelliği yani textBox'tan gelen sorgumuz ondan sonra sort yani id isimli tabloyu verip sıralama alanını belirtip satır state'inide Unchanged olarak belirterek sorgumuz sonucunda kayıtlı bilgileri datatable nesnemiz üzerinden dataview kullanarak görüntüleyebileceğiz.
DataView dv = new DataView(dt, sorgu, "id", DataViewRowState.Unchanged);
//dataView nesnemiz üzerinde bulunan kayıtların editlenmemesi için false değerini atıyoruz.
dv.AllowEdit = false;
//ve sorgu sonucu uyan kayıt varsa bunu dataGrid'imize atıyoruz.
dataGridView1.DataSource = dv;
}
//Soru gönder butonu
private void btnSorguGonder_Click(object sender, EventArgs e)
{
//metodumuzu çağırıp parametre olarak sorgumuzu göndereceğimiz textBox'ımızı veriyoruz.
BilgileriListele(txtSorgu.Text);
}
}
}
Bu şekilde DataView nesnesini kullanarak elimizdeki verileri görüntüleyebiliriz.
DataView örneğini indirmek için
Faydalı olması dileğiyle
Serhat TAŞ