DataTableReader.GetValues(Object[]) Metódus
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Egy objektumtömböt tölt fel az aktuális sor oszlopértékeivel.
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
Paraméterek
- values
- Object[]
Egy tömb, Object amelybe az oszlopértékeket ki szeretné másolni a DataTableReader.
Válaszok
A tömbbe másolt oszlopértékek száma.
Kivételek
Az átadott index a 0 FieldCount és 1 közötti tartományon kívül volt.
Egy törölt sor adatainak lekérésére tett kísérlet történt.
Egy bezárt DataTableReader oszlop olvasására vagy elérésére tett kísérletet.
Példák
Az alábbi példa egy megfelelő méretű tömb használatát mutatja be a megadott DataTableReadersor összes értékének beolvasásához. A minta emellett egy rögzített méretű tömb használatát is szemlélteti, amely kisebb vagy nagyobb lehet, mint a rendelkezésre álló oszlopok száma.
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
Megjegyzések
A legtöbb alkalmazás esetében ez a módszer hatékony eszközt biztosít az összes oszlop beolvasásához, ahelyett, hogy egyenként kérne le minden oszlopot. Ha a cél az összes oszlopérték lekérése a DataTableReadersoron belül, a GetValues metódus a leghatékonyabb megoldást nyújtja.
Olyan tömböt adhat át Object , amely kevesebb oszlopot tartalmaz, mint az eredményként kapott sor. A tömbbe csak a tömb által tartható adatok Object mennyisége lesz átmásolva. Olyan tömböt is átadhat Object , amelynek hossza nagyobb, mint az eredményül kapott sorban található oszlopok száma, ebben az esetben a további tömbelemek változatlanok maradnak a metódushívással.
Ez a metódus a null oszlopok kimeneti tömbjében helyezi el DBNull .