Sdílet prostřednictvím


SqlDataReader.GetOrdinal(String) Metoda

Definice

Získá pořadové číslo sloupce vzhledem k názvu sloupce.

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

Název sloupce

Návraty

Pořadové číslo sloupce založené na nule.

Implementuje

Výjimky

Zadaný název není platným názvem sloupce.

Příklady

Následující příklad ukazuje, jak použít metodu GetOrdinal .

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

Poznámky

GetOrdinal nejprve provede vyhledávání s rozlišováním velkých a malých písmen. Pokud se nezdaří, dojde k druhému hledání, které nerozlišuje malá a velká písmena (porovnání bez rozlišování malých a velkých písmen se provádí pomocí kolace databáze). Při porovnávání se zohledněním pravidel pro práci s malými a velkými písmeny specifickými pro jazykovou verzi může docházet k neočekávaným výsledkům. Například v turečtině následující příklad přináší nesprávné výsledky, protože systém souborů v turečtině nepoužívá jazyková pravidla pro písmena "i" v "souboru". Metoda vyvolá IndexOutOfRange výjimku, pokud není nalezen řadový sloupec založený na nule.

GetOrdinal je kana-šířka necitlivá.

Vzhledem k tomu, že vyhledávání podle pořadových čísel je efektivnější než pojmenované vyhledávání, je neefektivní volat GetOrdinal ve smyčce. Ušetřete čas voláním GetOrdinal jednou a přiřazením výsledků k celočíselné proměnné pro použití ve smyčce.

Platí pro