Share via


DataTableReader.GetValues(Object[]) Metode

Definisi

Mengisi array objek dengan nilai kolom baris saat ini.

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

Parameter

values
Object[]

Array Object untuk menyalin nilai kolom dari DataTableReader.

Mengembalikan

Jumlah nilai kolom yang disalin ke dalam array.

Pengecualian

Indeks yang diteruskan berada di luar kisaran 0 hingga FieldCount - 1.

Upaya dilakukan untuk mengambil data dari baris yang dihapus.

Upaya dilakukan untuk membaca atau mengakses kolom dalam keadaan tertutup DataTableReader .

Contoh

Contoh berikut menunjukkan menggunakan array yang berukuran benar, untuk membaca semua nilai dari baris saat ini dalam yang disediakan DataTableReader. Selain itu, sampel menunjukkan menggunakan array berukuran tetap yang bisa lebih kecil atau lebih besar dari jumlah kolom yang tersedia.

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

Keterangan

Untuk sebagian besar aplikasi, metode ini menyediakan cara yang efisien untuk mengambil semua kolom, alih-alih mengambil setiap kolom satu per satu. Jika niat Anda adalah untuk mengambil semua nilai kolom dari baris dalam DataTableReader, GetValues metode ini memberikan solusi yang paling efisien.

Anda dapat meneruskan Object array yang berisi kurang dari jumlah kolom yang terkandung dalam baris yang dihasilkan. Hanya jumlah data yang dapat disimpan Object array yang disalin ke array. Anda juga dapat meneruskan Object array yang panjangnya lebih dari jumlah kolom yang terkandung dalam baris yang dihasilkan, dalam hal ini elemen array tambahan tetap tidak berubah oleh panggilan metode.

Metode ini menempatkan DBNull dalam array output untuk kolom null.

Berlaku untuk