DataTableReader.GetOrdinal(String) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Pobiera porządkową kolumnę, podając nazwę kolumny.
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
Nazwa kolumny.
Zwraca
Liczba porządkowa kolumn opartych na zerach.
Wyjątki
Podjęto próbę odczytu lub uzyskania dostępu do kolumny w zamkniętej DataTableReaderkolumnie .
Określona nazwa nie jest prawidłową nazwą kolumny.
Przykłady
Jeśli masz tylko nazwę kolumny, w tym przypadku nazwa kolumny jest podana przez użytkownika i musisz pobrać informacje z kolumny, możesz użyć procedury podobnej do poniższej, aby wyodrębnić wymagane informacje. W tym przykładzie procedura akceptuje nazwę kolumny i zwraca dane zawarte w tej kolumnie dla bieżącego wiersza w obiekcie 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
Uwagi
Ponieważ większość metod dostarczonych przez DataTableReader klasę musi być podana z numerem kolumny porządkowej, można użyć GetOrdinal
metody w celu pobrania numeru kolumny, podając nazwę kolumny.
GetOrdinal
najpierw wykonuje wyszukiwanie uwzględniające wielkość liter. W przypadku niepowodzenia zostanie wykonane drugie wyszukiwanie bez uwzględniania wielkości liter. Jeśli numer kolumny nie zostanie znaleziony IndexOutOfRangeException
, zostanie zgłoszony.
GetOrdinal
jest niewrażliwa na szerokość kana.
Ponieważ wyszukiwania na podstawie porządkowych są bardziej wydajne niż nazwane wyszukiwania, jest nieefektywne wywołanie GetOrdinal
w ramach pętli. Oszczędzaj czas, wywołując GetOrdinal
jednorazowo i przypisując wyniki do zmiennej całkowitej do użycia w pętli