SqlDataReader.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:
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
Paraméterek
Válaszok
A tömb példányainak Object száma.
Megvalósítás
Példák
Az alábbi példa bemutatja, hogy helyes méretű tömb használatával olvassa be a megadott SqlDataReadersor összes értékét. 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(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
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.
Olyan tömböt adhat át Object , amely kevesebb oszlopot tartalmaz, mint az eredményként kapott sor oszlopainak száma. A rendszer csak a tömb által tárolt adatok Object mennyiségét másolja a tömbbe. Olyan tömböt is átadhat Object , amelynek hossza meghaladja az eredményként kapott sor oszlopainak számát.
Ez a metódus null értékű adatbázisoszlopokat DBNull ad vissza.