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 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

Porządkowa kolumna oparta na zera.

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 .

using Microsoft.Data.SqlClient;

class Program
{
    static void Main()
    {
        string str = "Data Source=(local);Initial Catalog=Northwind;"
            + "Integrated Security=SSPI";
        ReadGetOrdinal(str);
    }

    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();
        }
    }
}

Uwagi

GetOrdinal najpierw wykonuje wyszukiwanie uwzględniające wielkość liter. W przypadku niepowodzenia następuje 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 daje nieprawidłowe wyniki, ponieważ system plików w języku tureckim nie używa reguł liter literowych "i" w "file". Metoda zgłasza IndexOutOfRange wyjątek, jeśli nie znaleziono porządkowej kolumny zero.

GetOrdinal jest bez uwzględniania szerokości kana.

Ponieważ wyszukiwania oparte na porządkowi są bardziej wydajne niż nazwane odnośniki, jest nieefektywne wywołanie GetOrdinal w 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