SqlDataReader.GetValues(Object[]) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Füllt ein Array von Objekten mit den Spaltenwerten der aktuellen Zeile auf.
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
Gibt zurück
Die Anzahl der Instanzen von Object im Array.
Implementiert
Beispiele
Das folgende Beispiel veranschaulicht die Verwendung eines Arrays mit korrekter Größe, um alle Werte aus der aktuellen Zeile in der angegebenen SqlDataReaderzu lesen. Darüber hinaus 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 kann.
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
Für die meisten Anwendungen bietet diese Methode ein effizientes Mittel zum Abrufen aller Spalten, anstatt jede Spalte einzeln abzurufen.
Sie können ein Object Array übergeben, das weniger als die Anzahl der Spalten in der resultierenden Zeile enthält. Nur die Datenmenge, die das Object Array enthält, wird in das Array kopiert. Sie können auch ein Object Array übergeben, dessen Länge größer als die Anzahl der Spalten ist, die in der resultierenden Zeile enthalten sind.
Diese Methode gibt DBNull zurück, wenn die Datenbankspalten NULL-Werte enthalten.