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


Практическое руководство. Поиск заданной строки в объекте DataTable

Обновлен: Ноябрь 2007

Большинство приложений, получающих данные, нуждаются в доступе к отдельным записям, которые отвечают некоторым критериям. Чтобы найти конкретную строку в наборе данных, вызовите метод Find объекта DataRowCollection. Если есть первичный ключ, то возвращается объект DataRow. Если первичный ключ найти невозможно, то возвращается нулевое значение.

Поиск строки со значением первичного ключа

Чтобы найти строку в типизированном наборе данных со значением первичного ключа

  • Вызовите строго типизированный метод FindBy, который использует первичный ключ таблицы для поиска строки.

    В следующем примере колонка CustomerID является первичным ключом таблицы Customers, поэтому метод FindBy генерируется как FindByCustomerID. В примере показано, как присвоить определенный DataRow переменной, используя созданный метод FindBy.

    Dim customersRow As NorthwindDataSet.CustomersRow
    customersRow = NorthwindDataSet1.Customers.FindByCustomerID("ALFKI")
    
    NorthwindDataSet.CustomersRow customersRow = 
        northwindDataSet1.Customers.FindByCustomerID("ALFKI");
    

Чтобы найти строку в нетипизированном наборе данных со значением первичного ключа

  • Вызовите метод Find из коллекции DataRowCollection, передав первичный ключ в качестве параметра.

    В следующем примере показано, как объявить новую строку с именем foundRow и присвоить ей возвращаемое значение метода Find. Если первичный ключ найден, содержимое индекса столбца 1 отображается в окне сообщения.

    Dim s As String = "primaryKeyValue"
    Dim foundRow As DataRow = DataSet1.Tables("AnyTable").Rows.Find(s)
    
    If foundRow IsNot Nothing Then
        MsgBox(foundRow(1).ToString())
    Else
        MsgBox("A row with the primary key of " & s & " could not be found")
    End If
    
    string s = "primaryKeyValue";
    DataRow foundRow = dataSet1.Tables["AnyTable"].Rows.Find(s);
    
    if (foundRow != null) 
    {
        MessageBox.Show(foundRow[1].ToString());
    }
    else
    {
        MessageBox.Show("A row with the primary key of " + s + " could not be found");
    }
    

Поиск строк по значениям столбцов

Чтобы найти строки на основе значений в любом столбце

  • Таблицы данных создаются методом Select, который возвращает массив DataRow на основе выражения, переданного методу Select. Дополнительные сведения о создании допустимых выражений содержатся в разделе "Синтаксис выражений" на странице, описывающей свойство Expression.

    В следующем примере показано использование метода Select из DataTable для поиска конкретных строк.

    Dim foundRows() As Data.DataRow
    foundRows = DataSet1.Tables("Customers").Select("CompanyName Like 'A%'")
    
    DataRow[] foundRows;
    foundRows = dataSet1.Tables["Customers"].Select("CompanyName Like 'A%'");
    

См. также

Ссылки

Find

Select

Другие ресурсы

Редактирование данных в приложении

Подключение к данным в Visual Studio

Подготовка приложения к получению данных

Выборка данных в приложение

Отображение данных на форме в приложениях Windows

Редактирование данных в приложении

Проверка данных

Сохранение данных