SqlDataReader.GetOrdinal(String) Método

Definição

Obtém o ordinal da coluna, dado o nome da coluna.

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

Parâmetros

name
String

O nome da coluna.

Devoluções

O ordinal da coluna baseada em zero.

Implementações

Exceções

O nome especificado não é um nome de coluna válido.

Exemplos

O exemplo seguinte demonstra como usar o GetOrdinal método.

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

Observações

GetOrdinal Faz primeiro uma pesquisa com sensibilidade a maiúsculas minúsculas. Se falhar, ocorre uma segunda pesquisa insensível a maiúsculas minúsculas (uma comparação insensível a maiúsculas minúsculas é feita usando a colação da base de dados). Resultados inesperados podem ocorrer quando as comparações são afetadas por regras de revestimento específicas da cultura. Por exemplo, em turco, o seguinte exemplo produz resultados errados porque o sistema de ficheiros em turco não usa regras linguísticas de maiúscula para a letra 'i' em "file". O método lança uma IndexOutOfRange exceção se o ordinal da coluna baseado em zero não for encontrado.

GetOrdinal é insensível à largura de Kana.

Como as consultas baseadas em ordinais são mais eficientes do que as consultas nomeadas, é ineficiente chamar GetOrdinal dentro de um ciclo. Poupa tempo chamando GetOrdinal uma vez e atribuindo os resultados a uma variável inteira para uso dentro do ciclo.

Aplica-se a

Ver também