SqlDataReader.GetOrdinal(String) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Obtiene el índice de columna a partir del nombre de la columna determinado.
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
El nombre de la columna.
Devoluciones
Índice de la columna de base cero.
Implementaciones
Excepciones
El nombre especificado no es un nombre de columna válido.
Ejemplos
En el siguiente ejemplo se muestra cómo se utiliza el método GetOrdinal.
using Microsoft.Data.SqlClient;
class Program
{
static void Main()
{
string str = "Data Source=(local);Initial Catalog=Northwind;"
+ "Integrated Security=SSPI";
ReadGetOrdinal(str);
}
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();
}
}
}
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 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, en el ejemplo siguiente se producen resultados incorrectos porque el sistema de archivos en turco no usa reglas de mayúsculas y minúsculas lingüísticas 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 de kana.
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. Ahorre tiempo llamando una vez a GetOrdinal
y asignando los resultados a una variable entera para su uso en el bucle.