Поделиться через


DataRowCollection.Find Метод

Определение

Получает DataRow с использованием указанного значения PrimaryKey.

Перегрузки

Find(Object[])

Возвращает строку, которая содержит указанные значения первичного ключа.

Find(Object)

Возвращает строку, указанную значением первичного ключа.

Комментарии

Производительность должна быть операцией O(log n).

Find(Object[])

Исходный код:
DataRowCollection.cs
Исходный код:
DataRowCollection.cs
Исходный код:
DataRowCollection.cs

Возвращает строку, которая содержит указанные значения первичного ключа.

public:
 System::Data::DataRow ^ Find(cli::array <System::Object ^> ^ keys);
public System.Data.DataRow? Find (object?[] keys);
public System.Data.DataRow Find (object[] keys);
member this.Find : obj[] -> System.Data.DataRow
Public Function Find (keys As Object()) As DataRow

Параметры

keys
Object[]

Массив значений первичного ключа для поиска. Тип массива — Object.

Возвращаемое значение

Объект DataRow, содержащий указанные значения первичного ключа; в противном случае — значение NULL, если значение первичного ключа отсутствует в DataRowCollection.

Исключения

Этому значению индекса не соответствуют никакие строки.

Таблица не имеет первичного ключа.

Примеры

В следующем примере используются значения массива для поиска определенной строки в коллекции DataRow объектов . Метод предполагает, что DataTable существует с тремя первичными ключевыми столбцами. После создания массива значений код использует Find метод с массивом для получения нужного объекта.

private void FindInMultiPKey(DataTable table)
{
    // Create an array for the key values to find.
    object[]findTheseVals = new object[3];

    // Set the values of the keys to find.
    findTheseVals[0] = "John";
    findTheseVals[1] = "Smith";
    findTheseVals[2] = "5 Main St.";

    DataRow foundRow = table.Rows.Find(findTheseVals);
    // Display column 1 of the found row.
    if(foundRow != null)
        Console.WriteLine(foundRow[1]);
}
 Private Sub FindInMultiPKey(ByVal table As DataTable)
    ' Create an array for the key values to find.
    Dim findTheseVals(2) As Object

    ' Set the values of the keys to find.
    findTheseVals(0) = "John"
    findTheseVals(1) = "Smith"
    findTheseVals(2) = "5 Main St."

    Dim foundRow As DataRow = table.Rows.Find(findTheseVals)
    ' Display column 1 of the found row.
    If Not (foundRow Is Nothing) Then
        Console.WriteLine(foundRow(1).ToString())
    End If
End Sub

Комментарии

Чтобы использовать Find метод , объект, которому DataRowCollection принадлежит объект, DataTable должен иметь по крайней мере один столбец, назначенный в качестве первичного ключевого столбца. Если две или более строк имеют одинаковое значение первичного ключа, возвращается первая найденная строка. Это происходит, если EnforceConstraints для задано значение false. PrimaryKey Дополнительные сведения о создании PrimaryKey столбца или массива объектов, если таблица содержит несколько первичных DataColumn ключей, см. в свойстве .

См. также раздел

Применяется к

Find(Object)

Исходный код:
DataRowCollection.cs
Исходный код:
DataRowCollection.cs
Исходный код:
DataRowCollection.cs

Возвращает строку, указанную значением первичного ключа.

public:
 System::Data::DataRow ^ Find(System::Object ^ key);
public System.Data.DataRow? Find (object? key);
public System.Data.DataRow Find (object key);
member this.Find : obj -> System.Data.DataRow
Public Function Find (key As Object) As DataRow

Параметры

key
Object

Значение первичного ключа DataRow для поиска.

Возвращаемое значение

Объект DataRow, содержащий указанное значение первичного ключа; в противном случае — значение NULL, если значение первичного ключа не существует в DataRowCollection.

Исключения

Таблица не имеет первичного ключа.

Примеры

В следующем примере метод используется Find для поиска значения первичного ключа "2" в коллекции DataRow объектов . Метод возвращает конкретный DataRow объект, позволяющий изменять его значения при необходимости.

private void FindInPrimaryKeyColumn(DataTable table,
    long pkValue)
{
    // Find the number pkValue in the primary key
    // column of the table.
    DataRow foundRow = table.Rows.Find(pkValue);

    // Print the value of column 1 of the found row.
    if(foundRow != null)
        Console.WriteLine(foundRow[1]);
}
 Private Sub FindInPrimaryKeyColumn(ByVal table As DataTable, _
    ByVal pkValue As Long)
    ' Find the number pkValue in the primary key 
    ' column of the table.
    Dim foundRow As DataRow = table.Rows.Find(pkValue)

    ' Print the value of column 1 of the found row.
    If Not (foundRow Is Nothing) Then
        Console.WriteLine(foundRow(1).ToString())
    End If
End Sub

Комментарии

Чтобы использовать Find метод , объект, которому DataRowCollection принадлежит объект, DataTable должен иметь по крайней мере один столбец, назначенный в качестве первичного ключевого столбца. Дополнительные сведения о создании столбца PrimaryKey первичного ключа см. в свойстве .

См. также раздел

Применяется к