Compartir a través de


Visualización de datos en una tabla de datos

Puede acceder al contenido del DataTable mediante las colecciones Rows y Columns de DataTable. También puede usar el método para devolver subconjuntos de los datos de una Select según criterios, incluidos los criterios de búsqueda, el criterio de ordenación y el estado de fila. Además, puede usar el Find método de DataRowCollection al buscar una fila determinada mediante un valor de clave principal.

El método Select del objeto DataTable devuelve un conjunto de DataRow objetos que coinciden con los criterios especificados. Select toma argumentos opcionales de una expresión de filtro, una expresión de ordenación y DataViewRowState. La expresión de filtro identifica las filas que se van a devolver en función de los valores de DataColumn , como LastName = 'Smith'. La expresión de ordenación sigue las convenciones SQL estándar para ordenar columnas, por ejemplo LastName ASC, FirstName ASC. Para obtener reglas sobre cómo escribir expresiones, vea la Expression propiedad de la clase DataColumn .

Sugerencia

Si realiza varias llamadas al método Select de DataTable, puede aumentar el rendimiento creando primero un DataView para DataTable. La creación de DataView indexa las filas de la tabla. A continuación, el método Select usa ese índice, lo que reduce significativamente el tiempo para generar el resultado de la consulta. Para obtener información sobre cómo crear un dataView para una tabla de datos, vea DataViews.

El método Select determina qué versión de las filas se van a ver o manipular en función de DataViewRowState. En la tabla siguiente se describen los posibles valores de enumeración DataViewRowState .

Valor DataViewRowState Descripción
CurrentRows Las filas actuales, incluidas las filas sin cambios, agregadas y modificadas.
Eliminado Fila eliminada.
ModifiedCurrent Una versión actual, que es una versión modificada de los datos originales. (Vea ModifiedOriginal).
ModifiedOriginal La versión original de todas las filas que han sido modificadas. La versión actual está disponible mediante ModifiedCurrent.
Agregado Nueva fila.
Ninguno Ninguno.
OriginalRows Filas originales, incluidas las filas no modificadas y eliminadas.
Inalterado Una fila sin modificar.

En el ejemplo siguiente, el objeto DataSet se filtra para que solo trabaje con filas cuya propiedad DataViewRowState esté establecida en CurrentRows.

Dim column As DataColumn
Dim row As DataRow

Dim currentRows() As DataRow = _
    workTable.Select(Nothing, Nothing, DataViewRowState.CurrentRows)

If (currentRows.Length < 1 ) Then
  Console.WriteLine("No Current Rows Found")
Else
  For Each column in workTable.Columns
    Console.Write(vbTab & column.ColumnName)
  Next

  Console.WriteLine(vbTab & "RowState")

  For Each row In currentRows
    For Each column In workTable.Columns
      Console.Write(vbTab & row(column).ToString())
    Next

    Dim rowState As String = _
        System.Enum.GetName(row.RowState.GetType(), row.RowState)
    Console.WriteLine(vbTab & rowState)
  Next
End If
DataRow[] currentRows = workTable.Select(
    null, null, DataViewRowState.CurrentRows);

if (currentRows.Length < 1 )
  Console.WriteLine("No Current Rows Found");
else
{
  foreach (DataColumn column in workTable.Columns)
    Console.Write("\t{0}", column.ColumnName);

  Console.WriteLine("\tRowState");

  foreach (DataRow row in currentRows)
  {
    foreach (DataColumn column in workTable.Columns)
      Console.Write("\t{0}", row[column]);

    Console.WriteLine("\t" + row.RowState);
  }
}

El método Select se puede usar para devolver filas con valores RowState o valores de campo diferentes. En el ejemplo siguiente se devuelve una matriz DataRow que hace referencia a todas las filas que se han eliminado y devuelve otra matriz DataRow que hace referencia a todas las filas, ordenadas por CustLName, donde la columna CustID es mayor que 5. Para más información sobre cómo ver la información de la fila Deleted, consulte Estados y versiones de filas.

' Retrieve all deleted rows.
Dim deletedRows() As DataRow = workTable.Select(Nothing, Nothing, DataViewRowState.Deleted)

' Retrieve rows where CustID > 5, and order by CustLName.
Dim custRows() As DataRow = workTable.Select( _
    "CustID > 5", "CustLName ASC")
// Retrieve all deleted rows.
DataRow[] deletedRows = workTable.Select(
    null, null, DataViewRowState.Deleted);

// Retrieve rows where CustID > 5, and order by CustLName.
DataRow[] custRows = workTable.Select("CustID > 5", "CustLName ASC");

Consulte también