Freigeben über


DataTableReader.GetOrdinal(String) Methode

Definition

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.

Gilt für: