DataTableReader.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:
override int GetValues(cli::array <System::Object ^> ^ values);
public override int GetValues(object[] values);
override this.GetValues : obj[] -> int
Public Overrides Function GetValues (values As Object()) As Integer
Parameters
- values
- Object[]
Een matrix waarin Object de kolomwaarden uit de DataTableReaderkolom moeten worden gekopieerd.
Retouren
Het aantal kolomwaarden dat in de matrix is gekopieerd.
Uitzonderingen
De doorgegeven index lag buiten het bereik van 0 tot FieldCount - 1.
Er is een poging gedaan om gegevens op te halen uit een verwijderde rij.
Er is geprobeerd een kolom in een gesloten DataTableReader kolom te lezen of te openen.
Voorbeelden
In het volgende voorbeeld ziet u hoe u een matrix gebruikt die de juiste grootte heeft, om alle waarden uit de huidige rij in de opgegeven DataTableReaderrij 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(DataTableReader reader)
{
// Given a DataTableReader, 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 DataTableReader)
' Given a DataTableReader, 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. Als u alle kolomwaarden uit een rij in de DataTableReaderrij wilt ophalen, biedt de GetValues methode de meest efficiënte oplossing.
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 kan bevatten, wordt gekopieerd naar de matrix. U kunt ook een Object matrix doorgeven waarvan de lengte groter is dan het aantal kolommen dat zich in de resulterende rij bevindt. In dat geval blijven de extra matrixelementen ongewijzigd door de methodeaanroep.
Deze methode plaatst DBNull in de uitvoermatrix voor null-kolommen.