DataTableReader.GetOrdinal(String) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Získá pořadové číslo sloupce vzhledem k názvu 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
Pořadové číslo sloupce založené na nule.
Výjimky
Došlo k pokusu o čtení nebo přístup ke sloupci v uzavřeném DataTableReaderobjektu .
Zadaný název není platným názvem sloupce.
Příklady
Pokud máte jenom název sloupce, v takovém případě je název sloupce zadaný uživatelem a musíte ze sloupce načíst informace, 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 objektu 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 DataTableReader většina metod poskytovaných třídou musí být zadána s pořadovým číslem sloupce, můžete použít metodu GetOrdinal
k načtení čísla sloupce podle názvu sloupce.
GetOrdinal
nejprve provede vyhledávání s rozlišováním velkých a malých písmen. Pokud se nezdaří, provede se druhé hledání bez rozlišování velkých a malých písmen. Pokud se číslo sloupce nenajde, vyvolá se IndexOutOfRangeException
hodnota .
GetOrdinal
je kana-šířka necitlivá.
Vzhledem k tomu, že vyhledávání podle pořadových čísel je efektivnější než pojmenované vyhledávání, je neefektivní volat GetOrdinal
ve smyčce. Ušetřete čas jednorázovým voláním GetOrdinal
a přiřazením výsledků k celočíselné proměnné pro použití ve smyčce.