Export (0) Print
Expand All

SqlDataReader.GetValues Method

Populates an array of objects with the column values of the current row.

Namespace:  System.Data.SqlClient
Assembly:  System.Data (in System.Data.dll)

public override int GetValues(
	Object[] values
)

Parameters

values
Type: System.Object[]

An array of Object into which to copy the attribute columns.

Return Value

Type: System.Int32
The number of instances of Object in the array.

Implements

IDataRecord.GetValues(Object[])

For most applications, this method provides an efficient means for retrieving all columns, instead of retrieving each column individually.

You can pass an Object array that contains fewer than the number of columns contained in the resulting row. Only the amount of data the Object array holds is copied to the array. You can also pass an Object array whose length is more than the number of columns contained in the resulting row.

This method returns DBNull for null database columns.

The following example demonstrates using a correctly sized array to read all values from the current row in the supplied SqlDataReader. In addition, the sample demonstrates using a fixed-sized array that could be either smaller or larger than the number of available columns.

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

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Show:
© 2014 Microsoft