DataTableReader.GetOrdinal(String) Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee haalt u de kolomordinaal op, op basis van de naam van de kolom.
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
Parameters
- name
- String
De naam van de kolom.
Retouren
De op nul gebaseerde kolomordinaal.
Uitzonderingen
Er is geprobeerd een kolom in een gesloten DataTableReaderkolom te lezen of te openen.
De opgegeven naam is geen geldige kolomnaam.
Voorbeelden
Als u alleen een kolomnaam hebt, in welk geval de kolomnaam is opgegeven en u gegevens uit de kolom moet ophalen, kunt u een procedure zoals hieronder gebruiken om de vereiste gegevens op te halen. In dit voorbeeld accepteert de procedure een kolomnaam en retourneert de gegevens die zich in die kolom bevinden voor de huidige rij in het DataTableReader volgende:
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
Opmerkingen
Omdat de meeste methoden van de DataTableReader klasse moeten worden opgegeven met een rangnummer, kunt u de GetOrdinal methode gebruiken om het kolomnummer op te halen, op basis van de naam van de kolom.
GetOrdinal voert eerst een hoofdlettergevoelige zoekopdracht uit. Als dit mislukt, wordt een tweede niet hoofdlettergevoelige zoekopdracht uitgevoerd. Als het kolomnummer niet wordt gevonden, wordt er een ArgumentException gegenereerd.
GetOrdinal is niet gevoelig voor kana-breedte.
Omdat op ordinale gebaseerde zoekacties efficiënter zijn dan benoemde zoekacties, is het inefficiënt om binnen een lus aan te roepen GetOrdinal . Bespaar tijd door eenmalig aan te roepen GetOrdinal en de resultaten toe te wijzen aan een geheel getalvariabele voor gebruik binnen de lus