Udostępnij za pośrednictwem


SqlDataReader.GetOrdinal(String) Metoda

Definicja

Pobiera porządkową kolumnę, podając nazwę kolumny.

public:
 override int GetOrdinal(System::String ^ name);
public:
 virtual int GetOrdinal(System::String ^ name);
public override int GetOrdinal (string name);
public int GetOrdinal (string name);
override this.GetOrdinal : string -> int
abstract member GetOrdinal : string -> int
override this.GetOrdinal : string -> int
Public Overrides Function GetOrdinal (name As String) As Integer
Public Function GetOrdinal (name As String) As Integer

Parametry

name
String

Nazwa kolumny.

Zwraca

Liczba porządkowa kolumn opartych na zerach.

Implementuje

Wyjątki

Określona nazwa nie jest prawidłową nazwą kolumny.

Przykłady

W poniższym przykładzie pokazano, jak używać GetOrdinal metody .

private static void ReadGetOrdinal(string connectionString)
{
    string queryString = "SELECT DISTINCT CustomerID FROM dbo.Orders;";
    using (SqlConnection connection =
               new SqlConnection(connectionString))
    {
        SqlCommand command =
            new SqlCommand(queryString, connection);
        connection.Open();

        SqlDataReader reader = command.ExecuteReader();

        // Call GetOrdinal and assign value to variable.
        int customerID = reader.GetOrdinal("CustomerID");

        // Use variable with GetString inside of loop.
        while (reader.Read())
        {
            Console.WriteLine("CustomerID={0}", reader.GetString(customerID));
        }

        // Call Close when done reading.
        reader.Close();
    }
}
Private Sub ReadGetOrdinal(ByVal connectionString As String)
    Dim queryString As String = _
       "SELECT DISTINCT CustomerID FROM dbo.Orders;"

    Using connection As New SqlConnection(connectionString)
        Dim command As New SqlCommand(queryString, connection)
        connection.Open()

        Dim reader As SqlDataReader = command.ExecuteReader()

        ' Call GetOrdinal and assign value to variable.
        Dim customerID As Integer = reader.GetOrdinal("CustomerID")

        ' Use variable with GetString inside of loop.
        While reader.Read()
            Console.WriteLine("CustomerID={0}", reader.GetString(customerID))
        End While

        ' Call Close when done reading.
        reader.Close()
    End Using
End Sub

Uwagi

GetOrdinal najpierw wykonuje wyszukiwanie uwzględniające wielkość liter. Jeśli zakończy się to niepowodzeniem, zostanie przeprowadzone drugie wyszukiwanie bez uwzględniania wielkości liter (porównanie bez uwzględniania wielkości liter odbywa się przy użyciu sortowania bazy danych). Gdy na porównania wpływają reguły uwzględniające ustawienia kulturowe, mogą wystąpić nieoczekiwane rezultaty. Na przykład w języku tureckim poniższy przykład zwraca nieprawidłowe wyniki, ponieważ system plików w języku tureckim nie używa reguł wielkości liter w literze "i" w ciągu "file". Metoda zgłasza IndexOutOfRange wyjątek, jeśli nie znaleziono porządkowej kolumny opartej na zerze.

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 raz i przypisując wyniki do zmiennej całkowitej do użycia w pętli.

Dotyczy

Zobacz też