DataTable.Select Method (String, String)


Gets an array of all DataRow objects that match the filter criteria, in the specified sort order.

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

Public Function Select (
	filterExpression As String,
	sort As String
) As DataRow()


Type: System.String

The criteria to use to filter the rows. For examples on how to filter rows, see DataView RowFilter Syntax [C#].

Type: System.String

A string specifying the column and sort direction.

Return Value

Type: System.Data.DataRow()

An array of DataRow objects matching the filter expression.

To form the filterExpression argument, use the same rules for creating the DataColumn class's Expression property value. The Sort argument also uses the same rules for creating class's Expression strings.

If the column on the filter contains a null value, it will not be part of the result.

The following example uses a filter expression to return an array of DataRow objects.

Imports System.Data

Public Class A

   Public Shared Sub Main()
      Dim table As New DataTable("Orders")
      table.Columns.Add("OrderID", GetType(Int32))
      table.Columns.Add("OrderQuantity", GetType(Int32))
      table.Columns.Add("CompanyName", GetType(String))
      table.Columns.Add("Date", GetType(DateTime))

      Dim newRow As DataRow = table.NewRow()
      newRow("OrderID") = 1
      newRow("OrderQuantity") = 3
      newRow("CompanyName") = "NewCompanyName"
      newRow("Date") = "1979, 1, 31"

      ' Add the row to the rows collection.

      Dim newRow2 As DataRow = table.NewRow()
      newRow2("OrderID") = 2
      newRow2("OrderQuantity") = 2
      newRow2("CompanyName") = "NewCompanyName1"

      Dim newRow3 As DataRow = table.NewRow()
      newRow3("OrderID") = 3
      newRow3("OrderQuantity") = 2
      newRow3("CompanyName") = "NewCompanyName2"

      ' Presuming the DataTable has a column named Date.
      Dim expression As String = "Date = '1/31/1979' or OrderID = 2"
      ' Dim expression As String = "OrderQuantity = 2 and OrderID = 2"

      ' Sort descending by column named CompanyName.
      Dim sortOrder As String = "CompanyName ASC"
      Dim foundRows As DataRow()

      ' Use the Select method to find all rows matching the filter.
      foundRows = table.[Select](expression, sortOrder)

      ' Print column 0 of each returned row.
      For i As Integer = 0 To foundRows.Length - 1
   End Sub
End Class

.NET Framework
Available since 1.1
Return to top