DataTableReader.GetOrdinal(String) 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í.
Obtiene el índice de columna a partir del nombre de la columna determinado.
public:
override int GetOrdinal(System::String ^ name);
public override int GetOrdinal (string name);
override this.GetOrdinal : string -> int
Public Overrides Function GetOrdinal (name As String) As Integer
Parámetros
- name
- String
El nombre de la columna.
Devoluciones
Índice de la columna de base cero.
Excepciones
Se ha intentado la lectura o el acceso a una columna en un objeto DataTableReader cerrado.
El nombre especificado no es un nombre de columna válido.
Ejemplos
Si solo tiene un nombre de columna, en cuyo caso se proporciona el nombre de columna y debe recuperar información de la columna, puede usar un procedimiento como el siguiente para extraer la información necesaria. En este ejemplo, el procedimiento acepta un nombre de columna y devuelve los datos contenidos en esa columna para la fila actual en :DataTableReader
private static object GetValueByName(
DataTableReader reader, string columnName)
{
// Consider when to use a procedure like this one carefully:
// if you're going to retrieve information from a column
// in a loop, it would be better to retrieve the column
// ordinal once, store the value, and use the methods
// of the DataTableReader class directly.
object columnValue;
try
{
int columnOrdinal = reader.GetOrdinal(columnName);
columnValue = reader.GetValue(columnOrdinal);
}
catch (ArgumentException ex)
{
// Throw all other errors back out to the caller.
columnValue = null;
}
return columnValue;
}
Private Function GetValueByName( _
ByVal reader As DataTableReader, _
ByVal columnName As String) As Object
' Consider when to use a procedure like this one carefully:
' If you're going to retrieve information from a column
' in a loop, it would be better to retrieve the column
' ordinal once, store the value, and use the methods
' of the DataTableReader class directly.
Dim columnValue As Object
Try
Dim columnOrdinal As Integer = reader.GetOrdinal(columnName)
columnValue = reader.GetValue(columnOrdinal)
Catch ex As ArgumentException
' Throw all other errors back out to the caller.
columnValue = Nothing
End Try
Return columnValue
End Function
Comentarios
Dado que la mayoría de los métodos proporcionados por la DataTableReader clase deben proporcionarse con un número de columna ordinal, puede usar el método para recuperar el GetOrdinal
número de columna, dado el nombre de la columna.
GetOrdinal
realiza primero una búsqueda con distinción entre mayúsculas y minúsculas. Si se produce un error, se realiza una segunda búsqueda sin distinción entre mayúsculas y minúsculas. Si no se encuentra el número de columna, se produce una IndexOutOfRangeException
excepción .
GetOrdinal
no distingue el ancho de kana.
Dado que las búsquedas basadas en ordinales son más eficaces que las basadas en nombres, resulta poco útil llamar a GetOrdinal
dentro de un bucle. Ahorre tiempo llamando GetOrdinal
a una vez y asignando los resultados a una variable entera para su uso en el bucle.