Compartir a través de


Cómo: Buscar una fila específica en un objeto DataTable

La mayoría de las aplicaciones que consumen datos necesitan tener acceso a registros específicos que cumplan algunos criterios. Para buscar una fila concreta en un conjunto de datos, se invoca el método Find del objeto DataRowCollection. Si existe la clave principal, se devuelve un objeto DataRow. Si no se puede encontrar la clave principal, se devuelve un valor null.

Buscar una fila con un valor de clave principal

Para buscar una fila en un conjunto de datos con tipo con un valor de clave principal

  • Llame al método FindBy con establecimiento inflexible de tipos, que utiliza la clave principal de la tabla para localizar una fila.

    En el ejemplo siguiente, la columna CustomerID es la clave principal de la tabla Customers, por lo que el método FindBy generado es FindByCustomerID. El ejemplo muestra cómo asignar un DataRow concreto a una variable mediante el método FindBy generado.

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

Para buscar una fila en un conjunto de datos sin tipo con un valor de clave principal

  • Llame al método Find de una colección DataRowCollection, pasando la clave principal como parámetro.

    En el siguiente ejemplo, se muestra cómo declarar una nueva fila denominada foundRow y asignarle el valor devuelto del método Find. Si se encuentra la clave principal, se muestra el contenido del índice de columna 1 en un cuadro de mensaje.

    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");
    }
    

Buscar filas por valores de columnas

Para buscar filas basándose en los valores de cualquier columna

  • Las tablas de datos se crean con un método Select que devuelve una matriz de objetos DataRow basada en la expresión pasada al método Select. Para obtener más información sobre la creación de expresiones válidas, vea la sección "Sintaxis de expresiones" de la página sobre la propiedad Expression.

    En el siguiente ejemplo, se muestra el uso del método Select de DataTable para buscar filas específicas.

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

Vea también

Referencia

Find

Select

Conceptos

Enlazar controles a los datos en Visual Studio

Otros recursos

Modificar datos en la aplicación

Conectarse a datos en Visual Studio

Preparar la aplicación para recibir datos

Buscar datos en la aplicación

Modificar datos en la aplicación

Validar datos

Guardar datos

Historial de cambios

Fecha

Historial

Motivo

Mayo de 2011

Se ha actualizado el ejemplo de C# para corregir un defecto en el código.

Comentarios de los clientes.