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 l'ordinale di colonna, in base al 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.
Valori restituiti
Ordinale di colonna in base zero.
Eccezioni
È stato effettuato un tentativo di lettura o accesso a una colonna in un oggetto chiuso DataTableReader.
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 ed è necessario recuperare informazioni dalla colonna, è possibile utilizzare una procedura simile alla seguente per estrarre le informazioni necessarie. In questo esempio la routine 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 utilizzare il GetOrdinal metodo per recuperare il numero di colonna, in base al 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, viene generata un'eccezione ArgumentException .
GetOrdinal è senza distinzione di larghezza kana.
Poiché le ricerche basate su ordinali sono più efficienti delle ricerche denominate, è inefficiente chiamare GetOrdinal all'interno di un ciclo. Risparmiare tempo chiamando GetOrdinal una sola volta e assegnando i risultati a una variabile integer da usare all'interno del ciclo