SqlDataReader.GetOrdinal(String) Método

Definição

Obtém o ordinal de 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.

Retornos

O ordinal de coluna baseado em zero.

Implementações

Exceções

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

Exemplos

O exemplo a seguir 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

Comentários

GetOrdinal executa uma pesquisa que diferencia maiúsculas de minúsculas primeiro. Se falhar, ocorrerá uma segunda pesquisa que não diferencia maiúsculas de minúsculas (uma comparação que não diferencia maiúsculas de minúsculas é feita usando a ordenação de banco de dados). Resultados inesperados podem ocorrer quando as comparações são afetadas por regras de maiúsculas e minúsculas específicas da cultura. Por exemplo, em turco, o exemplo a seguir produz os resultados errados porque o sistema de arquivos em turco não usa regras de maiúsculas linguísticas para a letra "i" em "arquivo". O método gerará uma exceção IndexOutOfRange se o ordinal de coluna baseado em zero não for encontrado.

GetOrdinal não diferencia a largura de kana.

Como as pesquisas baseadas em ordinal são mais eficientes do que as pesquisas nomeadas, é ineficiente chamar GetOrdinal dentro de um loop. Economize tempo chamando GetOrdinal uma vez e atribuindo os resultados a uma variável inteiro para uso dentro do loop.

Aplica-se a

Confira também