SqlDataReader.GetValues(Object[]) SqlDataReader.GetValues(Object[]) SqlDataReader.GetValues(Object[]) SqlDataReader.GetValues(Object[]) Method

Определение

Заполняет массив объектов значениями столбцов текущей строки.Populates an array of objects with the column values of the current row.

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

Параметры

values
Object[]

Массив объектов Object, в который необходимо скопировать столбцы атрибутов.An array of Object into which to copy the attribute columns.

Возвраты

Число экземпляров Object в массиве.The number of instances of Object in the array.

Реализации

Примеры

В следующем примере демонстрируется использование массива правильного размера для чтения всех значений из текущей строки в SqlDataReaderзаданном.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]);
}
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

Комментарии

Для большинства приложений этот метод предоставляет эффективные средства для извлечения всех столбцов вместо извлечения каждого столбца по отдельности.For most applications, this method provides an efficient means for retrieving all columns, instead of retrieving each column individually.

Можно передать Object массив, который содержит меньшее количество столбцов, содержащихся в результирующей строке.You can pass an Object array that contains fewer than the number of columns contained in the resulting row. В массив копируется только объем Object данных, который содержит массив.Only the amount of data the Object array holds is copied to the array. Можно также передать Object массив, длина которого превышает число столбцов, содержащихся в результирующей строке.You can also pass an Object array whose length is more than the number of columns contained in the resulting row.

Этот метод возвращает объекты DBNull для столбцов базы данных со значениями NULL.This method returns DBNull for null database columns.

Применяется к

Дополнительно