ADO.NET - Utilize o método GetOrdinal para otimizar processamento de Loops

No VB6 vimos que ganhamos performance ao acessar os campos de um recordset pelo número ordinal de um campo ao invés do nome.

Com o DataReader isso continua a ocorrer, mas agora temos uma vantagem: Podemos utilizar o método GetOrdinal para recuperar a posição do campo dentro do DataReader.

Desta forma, antes de realizarmos algum loop grande no dataReader podemos utilizar o GetOrdinal para recuperarmos a posição dos campos e guardarmos essas posições em variáveis. Então, durante o loop, utilizamos essas variáveis, gerando uma otimização de performance.

Desta forma conseguimos otimizar a performance da aplicação sem gerarmos problemas de manutenção neste trecho de código.

Veja um exemplo:

Dim cmpNome As Integer

cmpNome = dr.GetOrdinal("Nome")

Do While dr.Read
Dim nome As String
nome = dr(cmpNome)
processa algo
Loop
dr.Close()