C# C# Windows Form Örnekleri Programlama SQL Server

DataView RowFilter Kullanarak Filtreleme (Like Kullanımı)

Bu yazımızda DataView sınıfını kullanarak belirli kriterlere göre veri filtreleme, arama işlemlerini nasıl yapabileceğimizi gösteren ufak bir örnek yapacağız. Örneğimizde daha önceden bağlantısı kurulmuş bir veritabanı örneğinde “like” kullanarak arama yapacağız.

DataView sınıfının RowFilter özelliği Sql sorgularındaki “where” gibi çalışır. DataView kullanmanın avantajı performanslı ve hızlı olmasıdır. DataView nesnesi kullanılabilmek için mutlaka bir DataTable ya da Dataset nesnesine ihtiyaç duyulur.

Kullanımına gelecek olursak; Öncelikle veritabanı bağlantıları yapılmış olan formumuzda arama yapmak için kullanılmak üzere textBox kontrolümüzü ekliyoruz. textBox kontrolünün TextChanged özelliğine;

kodlarını ekliyoruz. Burada textbox5′ e girilen karaktere göre datagridview içindeki verilerin her karaktere basıldığında filtrelenmesini sağlamış oluyoruz. Daha önceden oluşturmuş olduğumuz örneğe buradan ulaşabilirsiniz.

DataView RowFilter kullanımını gösteren Video:

8 Yorum

  • çalıştırdığım zaman DataView dv = tablo.DefaultView;-da” System.NullReferenceException: ‘Object reference not set to an instance of an object.’
    tablo was null” şeklınde hata veriyo.Nedeni ne ola bilir?

  • Merhaba Hocam
    Bu uygulamada tek bir sütunda filtreleme işlemi yapmışsınız ben birden fazla sütunda bu işlemi yapmak istiyorum aşağıdaki gibi denedim Syntax hatası veriyor yardımcı olur musunuz.

    private void metroTextBox1_TextChanged(object sender, EventArgs e)
    {
    DataView dv = ds.Tables[0].DefaultView;
    dv.RowFilter = “ItemNum,ItemName Like'” + metroTextBox1.Text + “%'”;
    metroGrid1.DataSource = dv;
    }

    • dv.RowFilter = “Ad Like ‘” + textBox1.Text + “%'” + “OR Soyad Like ‘” + textBox1.Text + “%'”;

      şeklinde yapabilirsiniz.

      • Additional information: Cannot perform ‘Like’ operation on System.Int32 and System.String.

        Sütunların veri tipleri farklı olduğundan şöyle bir hata veriyor
        Satır şu şekilde:
        dv.RowFilter = “ItemNum Like'” + metroTextBox1.Text + “%'”+ “or ItemName Like'” + metroTextBox1.Text+”%'”;

Yorum yap