DataTableReader.GetValues(Object[]) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Bir nesne dizisini geçerli satırın sütun değerleriyle doldurur.
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
Parametreler
- values
- Object[]
sütunundaki değerlerin ObjectDataTableReaderkopyalandığı dizi.
Döndürülenler
Diziye kopyalanan sütun değerlerinin sayısı.
Özel durumlar
Geçirilen dizin 0 FieldCount - 1 aralığının dışındaydı.
Silinen bir satırdan veri alma girişiminde bulunuldu.
Kapalı bir içindeki bir sütunu okuma veya sütuna erişme girişiminde bulunuldu DataTableReader .
Örnekler
Aşağıdaki örnek, sağlanan DataTableReaderiçindeki geçerli satırdaki tüm değerleri okumak için doğru boyutta bir dizi kullanmayı gösterir. Buna ek olarak, ö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(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
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. Amacınız içindeki DataTableReaderGetValues
bir satırdan tüm sütun değerlerini almaksa yöntemi en verimli çözümü sağlar.
Sonuçta elde edilen satırda bulunan sütun sayısından daha az sayıda sütun içeren bir Object dizi geçirebilirsiniz. Diziye yalnızca dizinin tutabileceği veri Object
miktarı kopyalanır. Ayrıca, uzunluğu sonuçta elde edilen satırda yer alan sütun sayısından daha fazla olan bir Object
dizi geçirebilirsiniz. Bu durumda, ek dizi öğeleri yöntem çağrısı tarafından değişmeden kalır.
Bu yöntem null sütunlar için çıkış dizisine yerleştirir DBNull
.