DataTableReader.GetOrdinal(String) Metoda

Definicja

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

Dotyczy