SqlDataReader.GetValues(Object[]) Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee wordt een matrix met objecten gevuld met de kolomwaarden van de huidige rij.
public:
virtual int GetValues(cli::array <System::Object ^> ^ values);
public:
override int GetValues(cli::array <System::Object ^> ^ values);
public int GetValues(object[] values);
public override int GetValues(object[] values);
abstract member GetValues : obj[] -> int
override this.GetValues : obj[] -> int
override this.GetValues : obj[] -> int
Public Function GetValues (values As Object()) As Integer
Public Overrides Function GetValues (values As Object()) As Integer
Parameters
Retouren
Het aantal exemplaren in Object de matrix.
Implementeringen
Voorbeelden
In het volgende voorbeeld ziet u hoe u een matrix met de juiste grootte gebruikt om alle waarden uit de huidige rij in de opgegeven SqlDataReaderrij te lezen. Daarnaast laat het voorbeeld zien hoe u een matrix met een vaste grootte gebruikt die kleiner of groter kan zijn dan het aantal beschikbare kolommen.
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
Opmerkingen
Voor de meeste toepassingen biedt deze methode een efficiƫnte manier om alle kolommen op te halen, in plaats van elke kolom afzonderlijk op te halen.
U kunt een Object matrix doorgeven die minder dan het aantal kolommen in de resulterende rij bevat. Alleen de hoeveelheid gegevens die de Object matrix bevat, wordt gekopieerd naar de matrix. U kunt ook een Object matrix doorgeven waarvan de lengte groter is dan het aantal kolommen in de resulterende rij.
Deze methode retourneert DBNull voor null-databasekolommen.