Compartir a través de


DataTableReader.GetOrdinal(String) Método

Definición

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.

Se aplica a