Condividi tramite


SqlDataReader.GetOrdinal(String) Metodo

Definizione

Ottiene la posizione ordinale della colonna, dato il nome della colonna.

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

Parametri

name
String

Nome della colonna.

Restituisce

Ordinale di colonna in base zero.

Implementazioni

Eccezioni

Il nome specificato non è un nome di colonna valido.

Esempio

Nell'esempio seguente viene illustrato l'utilizzo del metodo 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();
        }
    }
}

Commenti

GetOrdinal esegue prima una ricerca con distinzione tra maiuscole e minuscole. Se ha esito negativo, viene eseguita una seconda ricerca senza distinzione tra maiuscole e minuscole (viene eseguito un confronto senza distinzione tra maiuscole e minuscole usando le regole di confronto del database). I risultati imprevisti possono verificarsi quando i confronti sono interessati da regole di maiuscole e minuscole specifiche delle impostazioni cultura. Ad esempio, in turco, l'esempio seguente restituisce i risultati sbagliati perché il file system in turco non usa regole di maiuscole e minuscole linguistiche per la lettera 'i' in "file". Il metodo genera un'eccezione IndexOutOfRange se non viene trovato l'ordinale di colonna in base zero.

Il metodo GetOrdinal non fa distinzione di larghezza dei caratteri kana.

Poiché le ricerche basate su valori ordinali sono più efficienti delle ricerche denominate, chiamare il metodo GetOrdinal in un ciclo non è un'operazione efficiente. È possibile risparmiare tempo chiamando il metodo GetOrdinal una volta e assegnando i risultati a una variabile di tipo Integer per l'uso nel ciclo.

Si applica a