DataTableReader.GetValues(Object[]) Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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.