DataTableReader.GetValues(Object[]) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Rellena una matriz de objetos con los valores de columna de la fila actual.
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
Parámetros
- values
- Object[]
Matriz de Object en la que se copian los valores de las columnas del objeto DataTableReader.
Devoluciones
Número de valores de columna copiados en la matriz.
Excepciones
El índice que se ha pasado se encontraba fuera del intervalo entre 0 y FieldCount - 1.
Se ha intentado recuperar los datos de una fila eliminada.
Se ha intentado la lectura o el acceso a una columna en un elemento DataTableReader cerrado.
Ejemplos
En el ejemplo siguiente se muestra el uso de una matriz que es el tamaño correcto, para leer todos los valores de la fila actual en el proporcionado DataTableReader. Además, el ejemplo muestra el uso de una matriz de tamaño fijo que podría ser menor o mayor que el número de columnas disponibles.
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
Comentarios
Para la mayoría de las aplicaciones, este método proporciona un medio eficaz para recuperar todas las columnas, en lugar de recuperar cada columna individualmente. Si su intención es recuperar todos los valores de columna de una fila dentro DataTableReaderde , el GetValues
método proporciona la solución más eficaz.
Puede pasar una Object matriz que contenga menos del número de columnas contenidas en la fila resultante. Solo la cantidad de datos que puede contener la Object
matriz se copia en la matriz. También puede pasar una Object
matriz cuya longitud sea mayor que el número de columnas contenidas en la fila resultante, en cuyo caso los elementos de matriz adicionales permanecen sin cambios en la llamada al método.
Este método coloca DBNull
en la matriz de salida para columnas null.