DataView.RowFilter Property

Gets or sets the expression used to filter which rows are viewed in the DataView.

Namespace:  System.Data
Assembly:  System.Data (in System.Data.dll)

Public Overridable Property RowFilter As String

Property Value

Type: System.String
A string that specifies how rows are to be filtered. For more information, see the Remarks section.

To form a RowFilter value, specify the name of a column followed by an operator and a value to filter on. The value must be in quotation marks. For example:

"LastName = 'Smith'"

See the Expression property of the DataColumn class for more information.

To return only those columns with null values, use the following expression:

"Isnull(Col1,'Null Column') = 'Null Column'"

The following example creates a DataView and sets its RowFilter property.

Imports System
Imports System.Data
Imports System.Windows.Forms

Public Class Form1
    Inherits Form
    Protected Text1 As TextBox
    Protected DataSet1 As DataSet

    Public Shared Sub Main()
    End Sub 

    Private Shared Sub DemostrateDataView()
        ' Create a DataTable with one column 
        Dim dt As New DataTable("MyTable")
        Dim column As New DataColumn("Col", GetType(Integer))

        ' Add 5 rows on Added state 
        For i As Integer = 0 To 4
            Dim row As DataRow = dt.NewRow()
            row("Col") = i

        ' Add 5 rows on Unchanged state 
        For i As Integer = 5 To 9
            Dim row As DataRow = dt.NewRow()
            row("Col") = i
            ' Calling AcceptChanges will make the DataRowVersion change from Added to Unchanged in this case

        ' Create a DataView 
        Dim dv As New DataView(dt)

        Console.WriteLine("Print unsorted, unfiltered DataView")

        ' Changing the Sort order to descending
        dv.Sort = "Col DESC"

        Console.WriteLine("Print sorted DataView. Sort = 'Col DESC'")

        ' Filter by an expression. Filter all rows where column 'Col' have values greater or equal than 3
        dv.RowFilter = "Col < 3"

        Console.WriteLine("Print sorted and Filtered DataView by RowFilter. RowFilter = 'Col > 3'")

        ' Removing Sort and RpwFilter to ilustrate RowStateFilter. DataView should contain all 10 rows back in the original order
        dv.Sort = [String].Empty
        dv.RowFilter = [String].Empty

        ' Show only Unchanged rows or last 5 rows
        dv.RowStateFilter = DataViewRowState.Unchanged

        Console.WriteLine("Print Filtered DataView by RowState. RowStateFilter =  DataViewRowState.Unchanged")
    End Sub 

    Private Shared Sub PrintDataView(dv As DataView)
        ' Printing first DataRowView to demo that the row in the first index of the DataView changes depending on sort and filters
        Console.WriteLine("First DataRowView value is '{0}'", dv(0)("Col"))

        ' Printing all DataRowViews 
        For Each drv As DataRowView In dv
            Console.WriteLine(vbTab & " {0}", drv("Col"))
    End Sub 
End Class

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5, 3.0, 2.0, 1.1

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

XNA Framework

Supported in: 3.0, 2.0, 1.0
Was this page helpful?
(1500 characters remaining)
Thank you for your feedback
© 2015 Microsoft