Java, C/C++, Python, C#, LISP, AutoLisp, AutoCAD e VBA
PHP, Python, C#, JavaScript, Laravel, Google Ads e SEO

Você está aqui: C# ::: C# + Bancos de Dados ::: DbDataReader

Saiba mais sobre o funcionamento de um DataReader

Quantidade de visualizações: 15636 vezes
Quando pensamos em efetuar uma conexão C# com um banco de dados e listar os registros de uma determinada tabela, um DataReader (na verdade o nome da classe é DbDataReader) é o terceiro componente na lista daqueles necessários para efetuar tal tarefa.

O primeiro componente que precisamos é DbConnection, uma classe abstrata que tem entre suas classes derivadas as classes OdbcConnection, OleDbConnection, OracleConnection, SqlConnection e SqlCeConnection. Um objeto de uma classe que descende de DbConnection é o responsável por obter e manter a conexão com o banco de dados.

O segundo componente é aquele que permite "conversar" com o banco de dados, a saber, um objeto da classe DbCommand. Entre as classes que derivam de DbCommand podemos citar OdbcCommand, OleDbCommand, OracleCommand, SqlCommand e SqlCeCommand. Usamos objetos da classe DbCommand para enviar instruções SQL ao banco de dados.

Uma vez conectados ao banco de dados e com uma instrução SELECT pronta para ser executada, é preciso que tenhamos um componente que guarde os registro retornados pela instrução SELECT. Este componente é, em boa parte das aplicações, um DataReader.

Um DataReader é um objeto que implementa a interface System.Data.IDataReader. Este componente permite obter os dados retornados por um DbCommand em forma de registros (um registro por linha). Os dados mantidos no componente são de leitura rápida, mas, de mão única e somente leitura. Por mão única entendemos que os dados são lidos apenas em uma direção, ou seja, um DataReader não permite voltar ao registro anterior.

Veja um trecho de código no qual efetuamos uma conexão com o banco de dados, disparamos um comando SELECT e obtemos os registros retornados em um DbDataReader (usei um OdbcDataReader porque me conectei a um banco de dados MySQL usando ODBC):

Este trecho de código ou resolução de exercício faz parte do Super Pack 12.000 Dicas e Truques de Programação e 1.500 Exercícios Resolvidos em Java, Python, VisuAlg, Portugol, Delphi, C#, C, C++, VB.NET, Golang, Pascal, Ruby, PHP, e várias outras linguagens.

Aprenda a programar resolvendo problemas do mundo real. Tudo em português, com comentários em português.

Quero Ser Apoiador(a)


Neste exemplo usei ODBC. Se estiver usando SQL Server, use as classes correspondentes (SqlConnection, SqlCommand e SqlDataReader). Note que um DataReader é sempre obtido como resultado de uma chamada ao método ExecuteReader() da classe DbCommand:

Este trecho de código ou resolução de exercício faz parte do Super Pack 12.000 Dicas e Truques de Programação e 1.500 Exercícios Resolvidos em Java, Python, VisuAlg, Portugol, Delphi, C#, C, C++, VB.NET, Golang, Pascal, Ruby, PHP, e várias outras linguagens.

Aprenda a programar resolvendo problemas do mundo real. Tudo em português, com comentários em português.

Quero Ser Apoiador(a)


Quando o comando SQL é enviado ao banco de dados e um DataReader é retornado, seu cursor é posicionado antes do primeiro registro. Assim, é preciso efetuar chamadas ao seu método Read() para que o cursor seja posicionado no próximo registro. Quando o método retornar false saberemos que não há mais registros a serem lidos. Por esta razão, um laço while é quase sempre usado neste cenário:

Este trecho de código ou resolução de exercício faz parte do Super Pack 12.000 Dicas e Truques de Programação e 1.500 Exercícios Resolvidos em Java, Python, VisuAlg, Portugol, Delphi, C#, C, C++, VB.NET, Golang, Pascal, Ruby, PHP, e várias outras linguagens.

Aprenda a programar resolvendo problemas do mundo real. Tudo em português, com comentários em português.

Quero Ser Apoiador(a)


Cada registro contido no DataReader é composto de uma coleção de objetos. Cada objeto representando um campo na tabela. Os objetos desta coleção podem ser acessados por índices (começando em 0) ou pelo nome do campo na tabela. Neste exemplo usamos o método de acessar cada objeto usando o nome do campo.

Link para compartilhar na Internet ou com seus amigos:

Desafios, Exercícios e Algoritmos Resolvidos de C#

Veja mais Dicas e truques de C#

Dicas e truques de outras linguagens

E-Books em PDF

E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby


E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser. Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book Apenas R$ 32,90

Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica.


© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 107 usuários muito felizes estudando em nosso site.