DataTableReader.GetOrdinal(String) Metoda

Definice

Získá řadový sloupec s názvem sloupce.

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

Parametry

name
String

Název sloupce.

Návraty

Řadový sloupec založený na nule.

Výjimky

Došlo k pokusu o čtení nebo přístup ke sloupci v uzavřeném DataTableReadersloupci .

Zadaný název není platný název sloupce.

Příklady

Pokud máte jenom název sloupce, v takovém případě je jméno sloupce zadané uživatelem a je nutné načíst informace ze sloupce, můžete k extrahování požadovaných informací použít postup podobný následujícímu. V tomto příkladu procedura přijme název sloupce a vrátí data obsažená v tomto sloupci pro aktuální řádek v :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

Poznámky

Vzhledem k tomu, že většina metod poskytovaných DataTableReader třídou musí být k dispozici s pořadovým číslem sloupce, můžete pomocí GetOrdinal metody načíst číslo sloupce s názvem sloupce.

GetOrdinal provede nejprve vyhledávání s rozlišováním velkých a malých písmen. Pokud selže, provede se druhé vyhledávání bez rozlišování velkých a malých písmen. Pokud se číslo sloupce nenajde, ArgumentException vyvolá se.

GetOrdinal nerozlišuje šířku kana.

Vzhledem k tomu, že pořadové vyhledávání je efektivnější než pojmenované vyhledávání, je neefektivní volat GetOrdinal ve smyčce. Ušetřete čas voláním jednorázového volání GetOrdinal a přiřazením výsledků k celočíselné proměnné pro použití ve smyčce.

Platí pro