SqlDataReader.GetOrdinal(String) Método

Definición

Obtiene el ordinal de columna en función del nombre de la columna.Gets the column ordinal, given the name of the column.

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

Parámetros

name
String

Nombre de la columna.The name of the column.

Devoluciones

El ordinal de 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 realiza primero una búsqueda que distingue entre mayúsculas y minúsculas.GetOrdinal performs a case-sensitive lookup first. Si se produce un error, se produce una segunda búsqueda que no distingue entre mayúsculas y minúsculas (la comparación sin distinción entre mayúsculas y minúsculas se realiza mediante 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 reglas de mayúsculas y minúsculas específicas de la referencia culturalUnexpected results can occur when comparisons are affected by culture-specific casing rules. Por ejemplo, en Turco, el ejemplo siguiente produce los resultados incorrectos porque el sistema de archivos en Turco no utiliza las reglas de mayúsculas y minúsculas lingüísticas 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 excepción IndexOutOfRange si no se encuentra el ordinal de columna de base cero.The method throws an IndexOutOfRange exception if the zero-based column ordinal is not found.

GetOrdinal no distingue el ancho de kana.GetOrdinal is kana-width insensitive.

Dado que las búsquedas basadas en ordinales son más eficaces que las basadas en nombres, 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 una vez a GetOrdinal y asignando los resultados a una variable entera para su uso en el bucle.Save time by calling GetOrdinal once and assigning the results to an integer variable for use within the loop.

Se aplica a

Consulte también: