DataView.Sort Property

Definition

Gets or sets the sort column or columns, and sort order for the DataView.

public:
 property System::String ^ Sort { System::String ^ get(); void set(System::String ^ value); };
public string Sort { get; set; }
[System.Data.DataSysDescription("DataViewSortDescr")]
public string Sort { get; set; }
member this.Sort : string with get, set
[<System.Data.DataSysDescription("DataViewSortDescr")>]
member this.Sort : string with get, set
Public Property Sort As String

Property Value

A string that contains the column name followed by "ASC" (ascending) or "DESC" (descending). Columns are sorted ascending by default. Multiple columns can be separated by commas.

Attributes

Examples

The following example instructs the DataView to sort the table by two columns.

using System.Data;
using System;
public class A {
   static void Main(string[] args) {
      DataTable locationTable = new DataTable("Location");
      // Add two columns
      locationTable.Columns.Add("State");
      locationTable.Columns.Add("ZipCode");

      // Add data
      locationTable.Rows.Add("Washington", "98052");
      locationTable.Rows.Add("California", "90001");
      locationTable.Rows.Add("Hawaii", "96807");
      locationTable.Rows.Add("Hawaii", "96801");
      locationTable.AcceptChanges();

      Console.WriteLine("Rows in original order\n State \t\t ZipCode");
      foreach (DataRow row in locationTable.Rows) {
         Console.WriteLine(" {0} \t {1}", row["State"], row["ZipCode"]);
      }

      // Create DataView
      DataView view = new DataView(locationTable);

      // Sort by State and ZipCode column in descending order
      view.Sort = "State ASC, ZipCode ASC";

      Console.WriteLine("\nRows in sorted order\n State \t\t ZipCode");
      foreach (DataRowView row in view) {
         Console.WriteLine(" {0} \t {1}", row["State"], row["ZipCode"]);
      }
   }
}
Imports System.Data
Public Class A
   Public Shared Sub Main(args As String())
      Dim locationTable As New DataTable("Location")
      ' Add two columns
      locationTable.Columns.Add("State")
      locationTable.Columns.Add("ZipCode")

      ' Add data 
      locationTable.Rows.Add("Washington", "98052")
      locationTable.Rows.Add("California", "90001")
      locationTable.Rows.Add("Hawaii", "96807")
      locationTable.Rows.Add("Hawaii", "96801")
      locationTable.AcceptChanges()

      Console.WriteLine("Rows in original order" & vbLf & " State " & vbTab & vbTab & " ZipCode")
      For Each row As DataRow In locationTable.Rows
         Console.WriteLine(" {0} " & vbTab & " {1}", row("State"), row("ZipCode"))
      Next

      ' Create DataView
      Dim view As New DataView(locationTable)

      ' Sort by State and ZipCode column in descending order
      view.Sort = "State ASC, ZipCode ASC"

      Console.WriteLine(vbLf & "Rows in sorted order" & vbLf & " State " & vbTab & vbTab & " ZipCode")
      For Each row As DataRowView In view
         Console.WriteLine(" {0} " & vbTab & " {1}", row("State"), row("ZipCode"))
      Next
   End Sub
End Class

Remarks

If you do not explicitly specify sort criteria for DataView, the DataRowView objects in DataView are sorted based on the index of its corresponding DataRow in the DataTable.Rows DataRowCollection.

For more information, see DataViews.

Applies to

See also