DataTableReader.GetOrdinal(String) Metod

Definition

Hämtar kolumnordningen med namnet på kolumnen.

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

Parametrar

name
String

Kolumnens namn.

Returer

Den nollbaserade kolumnordningen.

Undantag

Ett försök gjordes att läsa eller komma åt en kolumn i en stängd DataTableReader.

Det angivna namnet är inte ett giltigt kolumnnamn.

Exempel

Om du bara har ett kolumnnamn, i vilket fall kolumnnamnet är angivet av användaren, och du måste hämta information från kolumnen, kan du använda en procedur som följande för att extrahera nödvändig information. I det här exemplet accepterar proceduren ett kolumnnamn och returnerar de data som finns i kolumnen för den aktuella raden i 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

Kommentarer

Eftersom de flesta metoder som tillhandahålls av DataTableReader klassen måste anges med ett ordningstal i kolumnen kan du använda GetOrdinal metoden för att hämta kolumnnumret med namnet på kolumnen.

GetOrdinal utför en skiftlägeskänslig sökning först. Om det misslyckas görs en andra skiftlägeskänslig sökning. Om kolumnnumret inte hittas genereras ett ArgumentException .

GetOrdinal är kana-bredd okänslig.

Eftersom ordningsbaserade sökningar är effektivare än namngivna sökningar är det ineffektivt att anropa GetOrdinal i en loop. Spara tid genom att anropa GetOrdinal en gång och tilldela resultatet till en heltalsvariabel för användning i loopen

Gäller för