Практическое руководство. Поиск заданной строки в объекте 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%'");
См. также
Ссылки
Другие ресурсы
Редактирование данных в приложении
Подключение к данным в Visual Studio
Подготовка приложения к получению данных
Отображение данных на форме в приложениях Windows