Share via


SqlDataReader.GetValues(Object[]) Yöntem

Tanım

Bir nesne dizisini geçerli satırın sütun değerleriyle doldurur.

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

Parametreler

values
Object[]

Öznitelik sütunlarının Object kopyalandığı dizi.

Döndürülenler

Dizideki örneklerinin Object sayısı.

Uygulamalar

Örnekler

Aşağıdaki örnek, sağlanan SqlDataReaderiçindeki geçerli satırdaki tüm değerleri okumak için doğru boyutlandırılmış bir dizi kullanmayı gösterir. Ayrıca örnek, kullanılabilir sütun sayısından daha küçük veya daha büyük olabilecek sabit boyutlu bir dizi kullanmayı gösterir.

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

Açıklamalar

Çoğu uygulama için bu yöntem, her sütunu ayrı ayrı almak yerine tüm sütunları almak için verimli bir yöntem sağlar.

Sonuçta elde edilen satırda yer alan sütun sayısından daha az sayıda sütun içeren bir Object dizi geçirebilirsiniz. Diziye yalnızca dizinin tuttuğu veri Object miktarı kopyalanır. Ayrıca, uzunluğu sonuçta elde edilen satırda bulunan sütun sayısından daha fazla olan bir Object dizi geçirebilirsiniz.

Bu yöntem null veritabanı sütunları için döndürür DBNull .

Şunlara uygulanır

Ayrıca bkz.