DataTableReader.GetOrdinal(String) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Obtém a ordinal da coluna, de acordo com o nome da coluna.
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
O nome da coluna.
Retornos
O ordinal da coluna baseado em zero.
Exceções
Foi feita uma tentativa de ler ou acessar uma coluna em um DataTableReader fechado.
O nome especificado não é um nome de coluna válido.
Exemplos
Se você tiver apenas um nome de coluna, nesse caso, o nome da coluna for fornecido pelo usuário e você precisar recuperar informações da coluna, poderá usar um procedimento como o seguinte para extrair as informações necessárias. Neste exemplo, o procedimento aceita um nome de coluna e retorna os dados contidos nessa coluna para a linha atual no DataTableReader :
private static object GetValueByName(
DataTableReader reader, string columnName)
{
// Consider when to use a procedure like this one carefully:
// if you're going to retrieve information from a column
// in a loop, it would be better to retrieve the column
// ordinal once, store the value, and use the methods
// of the DataTableReader class directly.
object columnValue;
try
{
int columnOrdinal = reader.GetOrdinal(columnName);
columnValue = reader.GetValue(columnOrdinal);
}
catch (ArgumentException ex)
{
// Throw all other errors back out to the caller.
columnValue = null;
}
return columnValue;
}
Private Function GetValueByName( _
ByVal reader As DataTableReader, _
ByVal columnName As String) As Object
' Consider when to use a procedure like this one carefully:
' If you're going to retrieve information from a column
' in a loop, it would be better to retrieve the column
' ordinal once, store the value, and use the methods
' of the DataTableReader class directly.
Dim columnValue As Object
Try
Dim columnOrdinal As Integer = reader.GetOrdinal(columnName)
columnValue = reader.GetValue(columnOrdinal)
Catch ex As ArgumentException
' Throw all other errors back out to the caller.
columnValue = Nothing
End Try
Return columnValue
End Function
Comentários
Como a maioria dos métodos fornecidos pela DataTableReader classe deve ser fornecida com um número de coluna ordinal, você pode usar o GetOrdinal
método para recuperar o número da coluna, dado o nome da coluna.
GetOrdinal
executa uma pesquisa que diferencia maiúsculas de minúsculas primeiro. Se falhar, uma segunda pesquisa que não diferencia maiúsculas de minúsculas será feita. Se o número da coluna não for encontrado, um IndexOutOfRangeException
será gerado.
GetOrdinal
não distingue largura de kana.
Como pesquisas baseadas em ordinais são mais eficientes do que pesquisas por nome, é ineficiente chamar GetOrdinal
dentro de um loop. Economize tempo chamando GetOrdinal
uma vez e atribuindo os resultados a uma variável de inteiro para uso dentro do loop