DataTableReader.GetValues(Object[]) Método

Definición

Rellena una matriz de objetos con los valores de columna de la fila actual.

public:
 override int GetValues(cli::array <System::Object ^> ^ values);
public override int GetValues (object[] values);
override this.GetValues : obj[] -> int
Public Overrides Function GetValues (values As Object()) As Integer

Parámetros

values
Object[]

Matriz de Object en la que se copian los valores de las columnas del objeto DataTableReader.

Devoluciones

Número de valores de columna copiados en la matriz.

Excepciones

El índice que se ha pasado se encontraba fuera del intervalo entre 0 y FieldCount - 1.

Se ha intentado recuperar los datos de una fila eliminada.

Se ha intentado la lectura o el acceso a una columna en un elemento DataTableReader cerrado.

Ejemplos

En el ejemplo siguiente se muestra el uso de una matriz que es el tamaño correcto, para leer todos los valores de la fila actual en el proporcionado DataTableReader. Además, el ejemplo muestra el uso de una matriz de tamaño fijo que podría ser menor o mayor que el número de columnas disponibles.

private static void TestGetValues(DataTableReader reader)
{
    // Given a DataTableReader, use the GetValues
    // method to retrieve a full row of data.
    // Test the GetValues method, passing in an array large
    // enough for all the columns.
    Object[] values = new Object[reader.FieldCount];
    int fieldCount = reader.GetValues(values);

    Console.WriteLine("reader.GetValues retrieved {0} columns.",
        fieldCount);
    for (int i = 0; i < fieldCount; i++)
        Console.WriteLine(values[i]);

    Console.WriteLine();

    // Now repeat, using an array that may contain a different
    // number of columns than the original data. This should work correctly,
    // whether the size of the array is larger or smaller than
    // the number of columns.

    // Attempt to retrieve three columns of data.
    values = new Object[3];
    fieldCount = reader.GetValues(values);
    Console.WriteLine("reader.GetValues retrieved {0} columns.",
        fieldCount);
    for (int i = 0; i < fieldCount; i++)
        Console.WriteLine(values[i]);
}
Private Sub TestGetValues(ByVal reader As DataTableReader)

    ' Given a DataTableReader, use the GetValues
    ' method to retrieve a full row of data.

    ' Test the GetValues method, passing in an array large
    ' enough for all the columns.
    Dim values(reader.FieldCount - 1) As Object
    Dim fieldCount As Integer = reader.GetValues(values)
    Console.WriteLine("reader.GetValues retrieved {0} columns.", _
         fieldCount)
    For i As Integer = 0 To fieldCount - 1
        Console.WriteLine(values(i))
    Next

    Console.WriteLine()

    ' Now repeat, using an array that may contain a different 
    ' number of columns than the original data. This should work correctly,
    ' whether the size of the array is larger or smaller than 
    ' the number of columns.

    ' Attempt to retrieve three columns of data.
    ReDim values(2)
    fieldCount = reader.GetValues(values)
    Console.WriteLine("reader.GetValues retrieved {0} columns.", _
         fieldCount)
    For i As Integer = 0 To fieldCount - 1
        Console.WriteLine(values(i))
    Next
End Sub

Comentarios

Para la mayoría de las aplicaciones, este método proporciona un medio eficaz para recuperar todas las columnas, en lugar de recuperar cada columna individualmente. Si su intención es recuperar todos los valores de columna de una fila dentro DataTableReaderde , el GetValues método proporciona la solución más eficaz.

Puede pasar una Object matriz que contenga menos del número de columnas contenidas en la fila resultante. Solo la cantidad de datos que puede contener la Object matriz se copia en la matriz. También puede pasar una Object matriz cuya longitud sea mayor que el número de columnas contenidas en la fila resultante, en cuyo caso los elementos de matriz adicionales permanecen sin cambios en la llamada al método.

Este método coloca DBNull en la matriz de salida para columnas null.

Se aplica a