DataTableReader.GetOrdinal(String) Metódus

Definíció

Lekéri az oszlop sorszámát az oszlop nevének megadva.

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

Paraméterek

name
String

Az oszlop neve.

Válaszok

A nulla alapú oszloprend.

Kivételek

Egy bezárt DataTableReaderoszlop olvasására vagy elérésére tett kísérletet.

A megadott név nem érvényes oszlopnév.

Példák

Ha csak egy oszlopnévvel rendelkezik, amely esetben az oszlop neve felhasználóként van megadva, és adatokat kell lekérnie az oszlopból, az alábbihoz hasonló eljárással kinyerheti a szükséges információkat. Ebben a példában az eljárás egy oszlopnevet fogad el, és az adott oszlopban található adatokat adja vissza a következő oszlopban 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

Megjegyzések

Mivel az osztály által DataTableReader megadott metódusok többségének sorszámmal kell rendelkeznie, a GetOrdinal metódussal lekérheti az oszlopszámot az oszlop nevének megadásával.

GetOrdinal Először a kis- és nagybetűket megkülönböztető kereséseket hajtja végre. Ha nem sikerül, egy második kis- és nagybetűs keresés is létrejön. Ha az oszlopszám nem található, a rendszer eldobja ArgumentException .

GetOrdinal kana szélességű érzéketlen.

Mivel a sorszámalapú keresések hatékonyabbak, mint a nevesített keresések, nem hatékony a cikluson belüli hívás GetOrdinal . Időt takaríthat meg azáltal, hogy egyszer meghívja GetOrdinal az eredményeket, és hozzárendeli az eredményeket egy egész szám változóhoz a cikluson belüli használatra

A következőre érvényes: