DataView.RowFilter Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Obtém ou define a expressão usada para filtrar quais linhas são exibidas no DataView.
public:
virtual property System::String ^ RowFilter { System::String ^ get(); void set(System::String ^ value); };
public virtual string? RowFilter { get; set; }
public virtual string RowFilter { get; set; }
[System.Data.DataSysDescription("DataViewRowFilterDescr")]
public virtual string RowFilter { get; set; }
member this.RowFilter : string with get, set
[<System.Data.DataSysDescription("DataViewRowFilterDescr")>]
member this.RowFilter : string with get, set
Public Overridable Property RowFilter As String
Valor da propriedade
Uma cadeia de caracteres que especifica como as linhas devem ser filtradas.
- Atributos
Exemplos
O exemplo a seguir cria um DataView e define sua RowFilter propriedade.
using System;
using System.Data;
using System.Windows.Forms;
public class Form1 : Form {
protected TextBox Text1;
protected DataSet DataSet1;
public static void Main() {
DemostrateDataView();
}
private static void DemostrateDataView() {
// Create a DataTable with one column
DataTable dt = new DataTable("MyTable");
DataColumn column = new DataColumn("Col", typeof(int));
dt.Columns.Add(column);
// Add 5 rows on Added state
for (int i = 0; i < 5; i++) {
DataRow row = dt.NewRow();
row["Col"] = i;
dt.Rows.Add(row);
}
// Add 5 rows on Unchanged state
for (int i = 5; i < 10; i++) {
DataRow row = dt.NewRow();
row["Col"] = i;
dt.Rows.Add(row);
// Calling AcceptChanges will make the DataRowVersion change from Added to Unchanged in this case
row.AcceptChanges();
}
// Create a DataView
DataView dv = new DataView(dt);
Console.WriteLine("Print unsorted, unfiltered DataView");
PrintDataView(dv);
// Changing the Sort order to descending
dv.Sort = "Col DESC";
Console.WriteLine("Print sorted DataView. Sort = 'Col DESC'");
PrintDataView(dv);
// 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'");
PrintDataView(dv);
// 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");
PrintDataView(dv);
}
private static void PrintDataView(DataView dv) {
// 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
foreach (DataRowView drv in dv) {
Console.WriteLine("\t {0}", drv["Col"]);
}
}
}
Imports System.Data
Imports System.Windows.Forms
Public Class Form1
Inherits Form
Protected Text1 As TextBox
Protected DataSet1 As DataSet
Public Shared Sub Main()
DemostrateDataView()
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))
dt.Columns.Add(column)
' Add 5 rows on Added state
For i As Integer = 0 To 4
Dim row As DataRow = dt.NewRow()
row("Col") = i
dt.Rows.Add(row)
Next
' Add 5 rows on Unchanged state
For i As Integer = 5 To 9
Dim row As DataRow = dt.NewRow()
row("Col") = i
dt.Rows.Add(row)
' Calling AcceptChanges will make the DataRowVersion change from Added to Unchanged in this case
row.AcceptChanges()
Next
' Create a DataView
Dim dv As New DataView(dt)
Console.WriteLine("Print unsorted, unfiltered DataView")
PrintDataView(dv)
' Changing the Sort order to descending
dv.Sort = "Col DESC"
Console.WriteLine("Print sorted DataView. Sort = 'Col DESC'")
PrintDataView(dv)
' 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'")
PrintDataView(dv)
' 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")
PrintDataView(dv)
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"))
Next
End Sub
End Class
Comentários
Para formar um RowFilter valor, especifique o nome de uma coluna seguida por um operador e um valor para filtrar. O valor deve estar entre aspas. Por exemplo:
"LastName = 'Smith'"
Consulte a Expression propriedade da DataColumn classe para obter mais informações.
Para retornar somente essas colunas com valores nulos, use a seguinte expressão:
"Isnull(Col1,'Null Column') = 'Null Column'"