Esta documentación está archivada y no tiene mantenimiento.

DataTableReader.GetOrdinal (Método)

Obtiene el ordinal de la columna a partir del nombre de la columna determinado.

Espacio de nombres: System.Data
Ensamblado: System.Data (en system.data.dll)

public override int GetOrdinal (
	string name
)
public int GetOrdinal (
	String name
)
public override function GetOrdinal (
	name : String
) : int
No aplicable.

Parámetros

name

Nombre de la columna.

Valor devuelto

Ordinal de base cero de la columna.

Tipo de excepciónCondición

InvalidOperationException

Se ha intentado la lectura o el acceso a una columna en un objeto DataTableReader cerrado.

ArgumentException

El nombre especificado no es un nombre de columna válido.

Dado que la mayoría de los métodos que proporciona la clase DataTableReader necesitan que se les suministre un número de columna ordinal, puede utilizar el método GetOrdinal para recuperar el número de columna a partir del nombre de la columna.

GetOrdinal realiza primero una búsqueda en la que se distingue entre mayúsculas y minúsculas. Si no se obtienen resultados, se realiza una segunda búsqueda sin distinción entre mayúsculas y minúsculas. Si no se encuentra el número de columnas, se produce una excepción IndexOutOfRangeException.

GetOrdinal no distingue el ancho kana.

Como las búsquedas basadas en ordinales son más eficaces que las de nombres, es inútil llamar a GetOrdinal en un bucle. Ahorre tiempo llamando a GetOrdinal una vez y asignando los resultados a una variable de entero para utilizarla en el bucle.

Si sólo tiene un nombre de columna y este número de columna lo proporciona el usuario, en el caso de que necesite recuperar información de la columna puede utilizar un procedimiento como el que sigue para extraer la información necesaria. En este ejemplo, el procedimiento acepta un nombre de columna y devuelve los datos que contiene esa columna para la fila actual del objeto 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;
}


Windows 98, Windows 2000 Service Pack 4, Windows CE, Windows Millennium, Windows Mobile para Pocket PC, Windows Mobile para Smartphone, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter

Microsoft .NET Framework 3.0 es compatible con Windows Vista, Microsoft Windows XP SP2 y Windows Server 2003 SP1.

.NET Framework

Compatible con: 3.0, 2.0

.NET Compact Framework

Compatible con: 2.0

XNA Framework

Compatible con: 1.0
Mostrar: