Compartir a través de


SqlDataReader.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:
 virtual int GetValues(cli::array <System::Object ^> ^ values);
public override int GetValues (object[] values);
public int GetValues (object[] values);
override this.GetValues : obj[] -> int
abstract member GetValues : obj[] -> int
override this.GetValues : obj[] -> int
Public Overrides Function GetValues (values As Object()) As Integer
Public Function GetValues (values As Object()) As Integer

Parámetros

values
Object[]

Matriz de Object en la que se copian las columnas de atributos.

Devoluciones

El número de instancias de Object en la matriz.

Implementaciones

Ejemplos

En el ejemplo siguiente se muestra el uso de una matriz de tamaño correcto para leer todos los valores de la fila actual en el especificado SqlDataReader. 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(SqlDataReader reader)
{
    // Given a SqlDataReader, 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 SqlDataReader)

    ' Given a SqlDataReader, 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.

Puede pasar una Object matriz que contenga menos del número de columnas contenidas en la fila resultante. Solo la cantidad de datos que contiene 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.

Este método devuelve DBNull para columnas nulas de la base de datos.

Se aplica a

Consulte también