DataTableReader.GetValues(Object[]) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Naplní pole objektů hodnotami sloupců aktuálního řádku.
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
Parametry
- values
- Object[]
Pole Object , do kterého se mají kopírovat hodnoty sloupců z objektu DataTableReader.
Návraty
Počet hodnot sloupců zkopírovaných do pole.
Výjimky
Předaný index byl mimo rozsah 0 až FieldCount 1.
Došlo k pokusu o načtení dat z odstraněného řádku.
Došlo k pokusu o čtení nebo přístup ke sloupci v uzavřeném DataTableReader objektu .
Příklady
Následující příklad ukazuje použití matice, která má správnou velikost, ke čtení všech hodnot z aktuálního řádku v zadaném DataTableReader. Kromě toho ukázka ukazuje použití pole s pevnou velikostí, které může být menší nebo větší než počet dostupných sloupců.
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
Poznámky
Pro většinu aplikací tato metoda poskytuje efektivní způsob pro načtení všech sloupců místo načtení jednotlivých sloupců. Pokud je vaším záměrem načíst všechny hodnoty sloupců z řádku v rámci DataTableReader, GetValues
metoda poskytuje nejúčinnější řešení.
Můžete předat matici Object , která obsahuje méně než počet sloupců obsažených ve výsledném řádku. Do pole se zkopíruje pouze množství dat, Object
které může pole obsahovat. Můžete také předat Object
pole, jehož délka je větší než počet sloupců, které jsou obsaženy ve výsledném řádku, v takovém případě další prvky pole zůstávají beze změny volání metody.
Tato metoda umístí DBNull
do výstupního pole sloupce s hodnotou null.