DataTableReader.GetOrdinal(String) Methode

Definition

Ruft die Spalten-Ordnungszahl ab, wobei der Name der Spalte angegeben ist.

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 Spalten-Ordnungszahl.

Ausnahmen

Es wurde versucht, eine Spalte in einer geschlossenen DataTableReaderSpalte 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 angegeben wird und Sie Informationen aus der Spalte abrufen müssen, können Sie ein Verfahren wie das 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 der 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

Hinweise

Da die meisten Methoden der DataTableReader Klasse mit einer Ordnungsspaltennummer bereitgestellt werden müssen, können Sie die GetOrdinal Methode verwenden, um die Spaltennummer abzurufen, wobei der Name der Spalte angegeben ist.

GetOrdinal führt zuerst eine Nachschlagevorgang mit Groß-/Kleinschreibung durch. Wenn ein Fehler auftritt, wird eine zweite Suche ohne Groß-/Kleinschreibung durchgeführt. Wenn die Spaltennummer nicht gefunden wird, wird ein ArgumentException Fehler ausgelöst.

GetOrdinal ist kana-width insensitiv.

Da Ordinalbasierte Nachschlagevorgänge effizienter sind als benannte Nachschlagevorgänge, ist es ineffizient, innerhalb einer Schleife aufzurufen GetOrdinal . Sparen Sie Zeit, indem Sie einmal aufrufen GetOrdinal und die Ergebnisse einer ganzzahligen Variablen für die Verwendung in der Schleife zuweisen.

Gilt für: