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á ř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.