DataView.RowFilter Proprietà

Definizione

Ottiene o imposta l'espressione usata per filtrare le righe da visualizzare nell'oggetto 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

Valore della proprietà

Stringa che specifica la modalità con cui vanno filtrate le righe.

Attributi

Esempio

L'esempio seguente crea un oggetto DataView e imposta la relativa RowFilter proprietà.

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

Commenti

Per formare un RowFilter valore, specificare il nome di una colonna seguita da un operatore e un valore da filtrare. Il valore deve essere tra virgolette. Ad esempio:

"LastName = 'Smith'"

Per altre informazioni, vedere la Expression proprietà della DataColumn classe.

Per restituire solo le colonne con valori Null, usare l'espressione seguente:

"Isull(Col1,'Colonna Null') = 'Colonna Null'"

Si applica a

Vedi anche