DataTable.Select Метод
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Получает массив объектов DataRow.
Select() |
Получает массив всех объектов DataRow. |
Select(String) |
Получает массив всех объектов DataRow, отвечающих условиям фильтра. |
Select(String, String) |
Получает массив всех объектов DataRow, отвечающих условиям фильтра, согласно указанному порядку сортировки. |
Select(String, String, DataViewRowState) |
Получает массив всех объектов DataRow, отвечающих условиям фильтра, согласно порядку сортировки, соответствующему указанному состоянию. |
- Исходный код:
- DataTable.cs
- Исходный код:
- DataTable.cs
- Исходный код:
- DataTable.cs
Получает массив всех объектов DataRow.
public:
cli::array <System::Data::DataRow ^> ^ Select();
public System.Data.DataRow[] Select ();
member this.Select : unit -> System.Data.DataRow[]
Public Function Select () As DataRow()
Возвращаемое значение
Массив объектов DataRow.
Примеры
В следующем примере возвращается массив DataRow объектов с помощью Select метода .
private void GetRows()
{
// Get the DataTable of a DataSet.
DataTable table = DataSet1.Tables["Suppliers"];
DataRow[] rows = table.Select();
// Print the value one column of each DataRow.
for(int i = 0; i < rows.Length ; i++)
{
Console.WriteLine(rows[i]["CompanyName"]);
}
}
Private Sub GetRows()
' Get the DataTable of a DataSet.
Dim table As DataTable = DataSet1.Tables("Suppliers")
Dim rows() As DataRow = table.Select()
Dim i As Integer
' Print the value one column of each DataRow.
For i = 0 to rows.GetUpperBound(0)
Console.WriteLine(rows(i)("CompanyName"))
Next i
End Sub
Комментарии
Чтобы обеспечить правильный порядок сортировки, укажите условия сортировки с помощью Select(String, String) или Select(String, String, DataViewRowState).
См. также раздел
Применяется к
- Исходный код:
- DataTable.cs
- Исходный код:
- DataTable.cs
- Исходный код:
- DataTable.cs
Получает массив всех объектов DataRow, отвечающих условиям фильтра.
public:
cli::array <System::Data::DataRow ^> ^ Select(System::String ^ filterExpression);
public System.Data.DataRow[] Select (string? filterExpression);
public System.Data.DataRow[] Select (string filterExpression);
member this.Select : string -> System.Data.DataRow[]
Public Function Select (filterExpression As String) As DataRow()
Параметры
- filterExpression
- String
Условия фильтрации строк.
Возвращаемое значение
Массив объектов DataRow.
Примеры
В следующем примере выражение фильтра используется для возврата массива DataRow объектов .
private void GetRowsByFilter()
{
DataTable table = DataSet1.Tables["Orders"];
// Presuming the DataTable has a column named Date.
string expression;
expression = "Date > #1/1/00#";
DataRow[] foundRows;
// Use the Select method to find all rows matching the filter.
foundRows = table.Select(expression);
// Print column 0 of each returned row.
for(int i = 0; i < foundRows.Length; i ++)
{
Console.WriteLine(foundRows[i][0]);
}
}
Private Sub GetRowsByFilter()
Dim table As DataTable = DataSet1.Tables("Orders")
' Presuming the DataTable has a column named Date.
Dim expression As String
expression = "Date > #1/1/00#"
Dim foundRows() As DataRow
' Use the Select method to find all rows matching the filter.
foundRows = table.Select(expression)
Dim i As Integer
' Print column 0 of each returned row.
For i = 0 to foundRows.GetUpperBound(0)
Console.WriteLine(foundRows(i)(0))
Next i
End Sub
Комментарии
Чтобы создать filterExpression
аргумент, используйте те же правила, которые применяются к значению DataColumn свойства класса Expression для создания фильтров.
Чтобы обеспечить правильный порядок сортировки, укажите условия сортировки с помощью Select(String, String) или Select(String, String, DataViewRowState).
Если столбец фильтра содержит значение NULL, он не будет частью результата.
См. также раздел
Применяется к
- Исходный код:
- DataTable.cs
- Исходный код:
- DataTable.cs
- Исходный код:
- DataTable.cs
Получает массив всех объектов DataRow, отвечающих условиям фильтра, согласно указанному порядку сортировки.
public:
cli::array <System::Data::DataRow ^> ^ Select(System::String ^ filterExpression, System::String ^ sort);
public System.Data.DataRow[] Select (string? filterExpression, string? sort);
public System.Data.DataRow[] Select (string filterExpression, string sort);
member this.Select : string * string -> System.Data.DataRow[]
Public Function Select (filterExpression As String, sort As String) As DataRow()
Параметры
- filterExpression
- String
Условия фильтрации строк.
- sort
- String
Строка, задающая столбец и порядок его сортировки.
Возвращаемое значение
Массив объектов DataRow, отвечающих выражению для фильтра.
Примеры
В следующем примере выражение фильтра используется для возврата массива DataRow объектов .
using System;
using System.Data;
public class A {
public static void Main() {
DataTable table = new DataTable("Orders");
table.Columns.Add("OrderID", typeof(Int32));
table.Columns.Add("OrderQuantity", typeof(Int32));
table.Columns.Add("CompanyName", typeof(string));
table.Columns.Add("Date", typeof(DateTime));
DataRow newRow = table.NewRow();
newRow["OrderID"] = 1;
newRow["OrderQuantity"] = 3;
newRow["CompanyName"] = "NewCompanyName";
newRow["Date"] = "1979, 1, 31";
// Add the row to the rows collection.
table.Rows.Add(newRow);
DataRow newRow2 = table.NewRow();
newRow2["OrderID"] = 2;
newRow2["OrderQuantity"] = 2;
newRow2["CompanyName"] = "NewCompanyName1";
table.Rows.Add(newRow2);
DataRow newRow3 = table.NewRow();
newRow3["OrderID"] = 3;
newRow3["OrderQuantity"] = 2;
newRow3["CompanyName"] = "NewCompanyName2";
table.Rows.Add(newRow3);
// Presuming the DataTable has a column named Date.
string expression = "Date = '1/31/1979' or OrderID = 2";
// string expression = "OrderQuantity = 2 and OrderID = 2";
// Sort descending by column named CompanyName.
string sortOrder = "CompanyName ASC";
DataRow[] foundRows;
// Use the Select method to find all rows matching the filter.
foundRows = table.Select(expression, sortOrder);
// Print column 0 of each returned row.
for (int i = 0; i < foundRows.Length; i++)
Console.WriteLine(foundRows[i][2]);
}
}
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.
table.Rows.Add(newRow)
Dim newRow2 As DataRow = table.NewRow()
newRow2("OrderID") = 2
newRow2("OrderQuantity") = 2
newRow2("CompanyName") = "NewCompanyName1"
table.Rows.Add(newRow2)
Dim newRow3 As DataRow = table.NewRow()
newRow3("OrderID") = 3
newRow3("OrderQuantity") = 2
newRow3("CompanyName") = "NewCompanyName2"
table.Rows.Add(newRow3)
' 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
Console.WriteLine(foundRows(i)(2))
Next
End Sub
End Class
Комментарии
Чтобы сформировать filterExpression
аргумент, используйте те же правила для создания DataColumn значения свойства класса Expression . Аргумент Sort
также использует те же правила для создания строк класса Expression .
Если столбец фильтра содержит значение NULL, он не будет частью результата.
См. также раздел
Применяется к
- Исходный код:
- DataTable.cs
- Исходный код:
- DataTable.cs
- Исходный код:
- DataTable.cs
Получает массив всех объектов DataRow, отвечающих условиям фильтра, согласно порядку сортировки, соответствующему указанному состоянию.
public:
cli::array <System::Data::DataRow ^> ^ Select(System::String ^ filterExpression, System::String ^ sort, System::Data::DataViewRowState recordStates);
public System.Data.DataRow[] Select (string? filterExpression, string? sort, System.Data.DataViewRowState recordStates);
public System.Data.DataRow[] Select (string filterExpression, string sort, System.Data.DataViewRowState recordStates);
member this.Select : string * string * System.Data.DataViewRowState -> System.Data.DataRow[]
Public Function Select (filterExpression As String, sort As String, recordStates As DataViewRowState) As DataRow()
Параметры
- filterExpression
- String
Условия фильтрации строк.
- sort
- String
Строка, задающая столбец и порядок его сортировки.
- recordStates
- DataViewRowState
Одно из значений перечисления DataViewRowState.
Возвращаемое значение
Массив объектов DataRow.
Примеры
В следующем примере для возврата массива DataRow объектов используется выражение фильтра и состояние записи.
private static void GetRowsByFilter()
{
DataTable customerTable = new DataTable("Customers");
// Add columns
customerTable.Columns.Add("id", typeof(int));
customerTable.Columns.Add("name", typeof(string));
// Set PrimaryKey
customerTable.Columns[ "id" ].Unique = true;
customerTable.PrimaryKey = new DataColumn[]
{ customerTable.Columns["id"] };
// Add ten rows
for(int id=1; id<=10; id++)
{
customerTable.Rows.Add(
new object[] { id, string.Format("customer{0}", id) });
}
customerTable.AcceptChanges();
// Add another ten rows
for(int id=11; id<=20; id++)
{
customerTable.Rows.Add(
new object[] { id, string.Format("customer{0}", id) });
}
string expression;
string sortOrder;
expression = "id > 5";
// Sort descending by column named CompanyName.
sortOrder = "name DESC";
// Use the Select method to find all rows matching the filter.
DataRow[] foundRows =
customerTable.Select(expression, sortOrder,
DataViewRowState.Added);
PrintRows(foundRows, "filtered rows");
foundRows = customerTable.Select();
PrintRows(foundRows, "all rows");
}
private static void PrintRows(DataRow[] rows, string label)
{
Console.WriteLine("\n{0}", label);
if(rows.Length <= 0)
{
Console.WriteLine("no rows found");
return;
}
foreach(DataRow row in rows)
{
foreach(DataColumn column in row.Table.Columns)
{
Console.Write("\table {0}", row[column]);
}
Console.WriteLine();
}
}
Private Sub GetRowsByFilter()
Dim customerTable As New DataTable("Customers")
' Add columns
customerTable.Columns.Add("id", GetType(Integer))
customerTable.Columns.Add("name", GetType(String))
' Set PrimaryKey
customerTable.Columns("id").Unique = True
customerTable.PrimaryKey = New DataColumn() _
{customerTable.Columns("id")}
' add ten rows
Dim id As Integer
For id = 1 To 10
customerTable.Rows.Add( _
New Object() {id, String.Format("customer{0}", id)})
Next id
customerTable.AcceptChanges()
' add another ten rows
For id = 11 To 20
customerTable.Rows.Add( _
New Object() {id, String.Format("customer{0}", id)})
Next id
Dim expression As String
Dim sortOrder As String
expression = "id > 5"
' Sort descending by CompanyName column.
sortOrder = "name DESC"
' Use the Select method to find all rows matching the filter.
Dim foundRows As DataRow() = _
customerTable.Select(expression, sortOrder, _
DataViewRowState.Added)
PrintRows(foundRows, "filtered rows")
foundRows = customerTable.Select()
PrintRows(foundRows, "all rows")
End Sub
Private Sub PrintRows(ByVal rows() As DataRow, ByVal label As String)
Console.WriteLine("\n{0}", label)
If rows.Length <= 0 Then
Console.WriteLine("no rows found")
Exit Sub
End If
Dim row As DataRow
Dim column As DataColumn
For Each row In rows
For Each column In row.Table.Columns
Console.Write("\table {0}", row(column))
Next column
Console.WriteLine()
Next row
End Sub
Комментарии
Чтобы сформировать filterExpression
аргумент, используйте те же правила для создания DataColumn значения свойства класса Expression . Аргумент Sort
также использует те же правила для создания строк класса Expression .
Если столбец фильтра содержит значение NULL, он не будет частью результата.
См. также раздел
Применяется к
Отзыв о .NET
.NET — это проект с открытым исходным кодом. Выберите ссылку, чтобы оставить отзыв: