DataTableReader.GetOrdinal(String) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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