DataTableReader.GetOrdinal(String) Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
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