SqlDataReader.GetOrdinal(String) SqlDataReader.GetOrdinal(String) SqlDataReader.GetOrdinal(String) SqlDataReader.GetOrdinal(String) Method

Definición

Obtiene el índice de columna a partir del nombre de la columna determinado. Gets the column ordinal, given the name of the column.

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
Parámetros
name
String String String String

El nombre de la columna. The name of the column.

Devoluciones

Índice de la columna de base cero. The zero-based column ordinal.

Implementaciones
Excepciones

El nombre especificado no es un nombre de columna válido. The name specified is not a valid column name.

Ejemplos

En el siguiente ejemplo se muestra cómo se utiliza el método GetOrdinal.The following example demonstrates how to use the GetOrdinal method.

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

Comentarios

GetOrdinal primero realiza una búsqueda distingue mayúsculas de minúsculas.GetOrdinal performs a case-sensitive lookup first. Si se produce un error, un segundo, se produce la búsqueda de mayúsculas y minúsculas (se realiza una comparación entre mayúsculas y minúsculas con la intercalación de base de datos).If it fails, a second, case-insensitive search occurs (a case-insensitive comparison is done using the database collation). Pueden producirse resultados inesperados cuando las comparaciones se ven afectadas por las reglas de mayúsculas y minúsculas específicas de la referencia cultural.Unexpected results can occur when comparisons are affected by culture-specific casing rules. Por ejemplo, en turco, en el ejemplo siguiente se genera los malos resultados porque el sistema de archivos en turco no utiliza las reglas lingüísticas de mayúsculas y minúsculas para la letra 'i' en "file".For example, in Turkish, the following example yields the wrong results because the file system in Turkish does not use linguistic casing rules for the letter 'i' in "file". El método produce una IndexOutOfRange excepción si no se encuentra el ordinal de columna basado en cero.The method throws an IndexOutOfRange exception if the zero-based column ordinal is not found.

GetOrdinal no distingue kana y ancho de minúsculas.GetOrdinal is kana-width insensitive.

Dado que las búsquedas basadas en ordinales son más eficaces que las búsquedas con nombre, resulta poco útil llamar a GetOrdinal dentro de un bucle.Because ordinal-based lookups are more efficient than named lookups, it is inefficient to call GetOrdinal within a loop. Ahorre tiempo llamando GetOrdinal una vez y asignando los resultados a una variable entera para su uso dentro del bucle.Save time by calling GetOrdinal once and assigning the results to an integer variable for use within the loop.

Se aplica a

Consultar también