SqlDataReader.GetValues(Object[]) Methode

Definition

Füllt ein Array von Objekten mit den Spaltenwerten der aktuellen Zeile auf.Populates an array of objects with the column values of the current row.

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

Parameter

values
Object[]

Ein Array vom Typ Object, in das die Attributspalten kopiert werden sollen.An array of Object into which to copy the attribute columns.

Gibt zurück

Int32

Die Anzahl der Instanzen von Object im Array.The number of instances of Object in the array.

Implementiert

Beispiele

Im folgenden Beispiel wird die Verwendung eines Arrays mit fester Breite zum Lesen aller Werte aus der aktuellen Zeile in der angegebenen veranschaulicht SqlDataReader .The following example demonstrates using a correctly sized array to read all values from the current row in the supplied SqlDataReader. Außerdem veranschaulicht das Beispiel die Verwendung eines Arrays mit fester Größe, das entweder kleiner oder größer als die Anzahl der verfügbaren Spalten sein könnte.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

Hinweise

Bei den meisten Anwendungen bietet diese Methode eine effiziente Möglichkeit zum Abrufen aller Spalten, anstatt jede Spalte einzeln abzurufen.For most applications, this method provides an efficient means for retrieving all columns, instead of retrieving each column individually.

Sie können ein Object Array übergeben, das weniger als die Anzahl der Spalten enthält, die in der resultierenden Zeile enthalten sind.You can pass an Object array that contains fewer than the number of columns contained in the resulting row. Nur die Menge der Daten, die das Object Array enthält, wird in das Array kopiert.Only the amount of data the Object array holds is copied to the array. Sie können auch ein Array übergeben, Object dessen Länge größer ist als die Anzahl der Spalten, die in der resultierenden Zeile enthalten sind.You can also pass an Object array whose length is more than the number of columns contained in the resulting row.

Diese Methode gibt DBNull zurück, wenn die Datenbankspalten NULL-Werte enthalten.This method returns DBNull for null database columns.

Gilt für: