DataTableReader.GetOrdinal(String) Método

Definición

Obtiene el ordinal de columna, dado el nombre de la columna.

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

Nombre de la columna.

Devoluciones

Ordinal de columna de base cero.

Excepciones

Se intentó leer o tener acceso a una columna en un objeto cerrado DataTableReader.

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 que distingue mayúsculas de 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 ArgumentException excepción .

GetOrdinal no distingue el ancho kana.

Dado que las búsquedas basadas en ordinales son más eficaces que las búsquedas con nombre, es ineficaz llamar dentro GetOrdinal de un bucle. Ahorre tiempo llamando a GetOrdinal una sola vez y asignando los resultados a una variable de entero para su uso en el bucle

Se aplica a