DataTableReader.GetOrdinal(String) Metodo

Definizione

Ottiene la posizione ordinale della colonna, dato il nome della colonna.

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

Parametri

name
String

Nome della colonna.

Restituisce

Ordinale di colonna in base zero.

Eccezioni

È stato effettuato un tentativo di lettura o di accesso a una colonna in una classe DataTableReader chiusa.

Il nome specificato non è un nome di colonna valido.

Esempio

Se si dispone solo di un nome di colonna, nel qual caso il nome della colonna viene fornito dall'utente e è necessario recuperare informazioni dalla colonna, è possibile usare una procedura come quella seguente per estrarre le informazioni necessarie. In questo esempio la procedura accetta un nome di colonna e restituisce i dati contenuti all'interno di tale colonna per la riga corrente in 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

Commenti

Poiché la maggior parte dei metodi forniti dalla DataTableReader classe deve essere fornita con un numero di colonna ordinale, è possibile usare il metodo per recuperare il numero di colonna, dato il GetOrdinal nome della colonna.

GetOrdinal esegue prima una ricerca con distinzione tra maiuscole e minuscole. Se ha esito negativo, viene eseguita una seconda ricerca senza distinzione tra maiuscole e minuscole. Se il numero di colonna non viene trovato IndexOutOfRangeException viene generato.

Il metodo GetOrdinal non fa distinzione di larghezza dei caratteri kana.

Poiché le ricerche basate su valori ordinali sono più efficienti delle ricerche denominate, chiamare il metodo GetOrdinal in un ciclo non è un'operazione efficiente. Risparmiare tempo chiamando GetOrdinal una volta e assegnando i risultati a una variabile integer da usare all'interno del ciclo

Si applica a