SqlDataReader.GetOrdinal(String) Método

Definición

Obtiene el ordinal de columna, dado el nombre de la columna.

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

Nombre de la columna.

Devoluciones

Ordinal de columna de base cero.

Implementaciones

Excepciones

El nombre especificado no es un nombre de columna válido.

Ejemplos

En el ejemplo siguiente se muestra cómo usar el 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

Comentarios

GetOrdinal realiza primero una búsqueda que distingue mayúsculas de minúsculas. Si se produce un error, se produce una segunda búsqueda sin distinción entre mayúsculas y minúsculas (se realiza una comparación sin distinción entre mayúsculas y minúsculas mediante la intercalación de la base de datos). Los resultados inesperados pueden producirse cuando las comparaciones se ven afectadas por las reglas de mayúsculas y minúsculas específicas de la referencia cultural. Por ejemplo, en turco, el siguiente ejemplo produce resultados incorrectos porque el sistema de archivos en turco no usa reglas lingüísticas de mayúsculas y minúsculas para la letra 'i' en "archivo". El método produce una IndexOutOfRange excepción si no se encuentra el ordinal de columna de base cero.

GetOrdinal no distingue el ancho kana.

Dado que las búsquedas basadas en ordinales son más eficaces que las búsquedas con nombre, es ineficaz llamar dentro GetOrdinal de un bucle. Ahorre tiempo llamando a GetOrdinal una vez y asignando los resultados a una variable de entero para su uso en el bucle .

Se aplica a

Consulte también