DataTableReader.GetOrdinal(String) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ruft bei angegebenem Spaltennamen die Ordnungszahl der Spalte ab.
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
Parameter
- name
- String
Der Name der Spalte.
Gibt zurück
Die nullbasierte Ordnungszahl der Spalte.
Ausnahmen
Es wurde versucht, eine Spalte in einem geschlossenen DataTableReader zu lesen oder darauf zuzugreifen.
Der angegebene Name ist kein gültiger Spaltenname.
Beispiele
Wenn Sie nur über einen Spaltennamen verfügen, in diesem Fall der Spaltenname vom Benutzer angegeben ist und Sie Informationen aus der Spalte abrufen müssen, können Sie eine Prozedur wie die folgende verwenden, um die erforderlichen Informationen zu extrahieren. In diesem Beispiel akzeptiert die Prozedur einen Spaltennamen und gibt die Daten zurück, die in dieser Spalte für die aktuelle Zeile in enthalten DataTableReader sind:
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
Hinweise
Da die meisten von der DataTableReader -Klasse bereitgestellten Methoden mit einer Ordnungsspaltennummer bereitgestellt werden müssen, können Sie die GetOrdinal
-Methode verwenden, um die Spaltennummer unter Angabe des Spaltennamens abzurufen.
GetOrdinal
führt zuerst eine Nachbereinigung der Groß-/Kleinschreibung durch. Wenn ein Fehler auftritt, wird eine zweite Suche ohne Beachtung der Groß-/Kleinschreibung durchgeführt. Wenn die Spaltennummer nicht gefunden wird, wird ein IndexOutOfRangeException
ausgelöst.
GetOrdinal
berücksichtigt die Laufweite von Kana nicht.
Da Nachschlagevorgänge auf der Basis von Ordinalzahlen effizienter sind als Nachschlagevorgänge nach Namen, ist der Aufruf von GetOrdinal
innerhalb einer Schleife ineffizient. Sparen Sie Zeit, indem Sie einmal aufrufen GetOrdinal
und die Ergebnisse einer ganzzahligen Variablen für die Verwendung innerhalb der Schleife zuweisen.