Bagikan melalui


SqlDataReader.GetValues(Object[]) Metode

Definisi

Mengisi array objek dengan nilai kolom baris saat ini.

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

Parameter

values
Object[]

Array Object untuk menyalin kolom atribut.

Mengembalikan

Jumlah instans Object dalam array.

Penerapan

Contoh

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

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

Keterangan

Untuk sebagian besar aplikasi, metode ini menyediakan cara yang efisien untuk mengambil semua kolom, alih-alih mengambil setiap kolom satu per satu.

Anda dapat meneruskan Object array yang berisi kurang dari jumlah kolom yang terkandung dalam baris yang dihasilkan. Hanya jumlah data yang 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.

Metode ini mengembalikan DBNull untuk kolom database null.

Berlaku untuk

Lihat juga