DataReader
Hoje eu vou falar um pouco sobre o objeto de leitura de dados conectado ao banco de dados. Em artigos anteriores, eu falei sobre o ADO.NET e seus objetos responsáveis por enviar, buscar e guardar dados, e agora eu vou falar e mostrar como trabalhar com o DataReader.
O artigo anterior, falei e mostrei como conectar ao banco de dados. Se você ainda não leu, seria interessante olhar e fazer o mesmo exemplo do artigo. Segue o link abaixo:
Link do artigo ADO.NET:
http://www.ecode10.com/artigo/1930/ADO-NET-e-conexao-SQL-Server
Veja o que vamos utilizar neste artigo:
- Ferramenta Visual Studio
- Linguagem C#
- Plataforma Web Forms
- SQL Server
- Conexão com o banco de dados
Este artigo será rápido porque não vou falar muito sobre os conceitos do DataReader, isso já foi falado anteriormente. Vamos passar direto para o código. Dentro do banco de dados BDTeste foi criada uma tabela chamada de Usuario. Essa tabela contém apenas duas colunas, um IdUsuario e outra NoUsuario.
O que vou fazer agora é mandar uma instrução ao banco de dados para retornar todos os dados dessa tabela. Não posso esquecer que preenchi os dados com alguns nomes aleatórios. Para trabalhar com o SqlCommand e o SqlDataReader oi necessário importar duas classes dentro do projeto, veja no artigo anterior citado anteriormente. Veja o código 1.
using (SqlConnection connection = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["ConexaoSQLServerLocal"].ToString()))
{
try
{
connection.Open();
SqlCommand command = new SqlCommand("SELECT NoUsuario FROM Usuario", connection);
SqlDataReader dReader = command.ExecuteReader();
while (dReader.Read())
{
Response.Write("
Nome: " + dReader["NoUsuario"].ToString());
}
}
catch (Exception ex)
{
throw ex;
}
finally
{
connection.Close();
}
}
Código 1 - Trabalhando com DataReader
Depois de abrir a conexão com o banco de dados, é necessário enviar uma instrução através da classe SqlCommand cujo o nome da variável foi dada de command. Logo quando for criar uma instância da classe, é necessário passar o comando e a conexão de banco de dados. Para isso, basta fazer um SELECT simples e depois mandar a variável de conexão criada. No nosso caso se chama connection.
No SELECT, vou buscar apenas o nome do usuário sem ordenação ou passagem de parâmetro. Para passar parâmetro é um outro caso e outro artigo para te mostrar, isso porque a segurança tem que ser levada em conta. Veja o código 2.
SqlCommand command = new SqlCommand("SELECT NoUsuario FROM Usuario", connection);
Código 2 - Criando o comando para envio ao banco de dados.
Você pode criar uma variável do tipo String armazenando o SELECT e depois coloque a variável dentro do command, isso pode ser outra opção interessante caso o SELECT for muito grande.
A próxima linha é responsável por executar o comando criada com o SELECT. Mas lembre-se que você precisar estar conectado ao banco de dados sempre. Veja o código 3.
SqlDataReader dReader = command.ExecuteReader();
Código 3 - Executando o comando no banco de dados e pegando os valores pedidos.
Note que o código 3 tem a sua importância, isso porque todos os valores solicitados estarão na variável chamada dReader, uma instância de SqlDataReader. Veja que a variável command enviou através do método ExecuteReader() a instrução escrita no código 2. Se todos os dados do banco de dados estão nesta variável, o próximo passo é lê-los. Veja o código 4.
while (dReader.Read())
{
Response.Write("
Nome: " + dReader["NoUsuario"].ToString());
}
Código 4 - Ler os dados do banco de dados.
Enquanto o objeto tiver dados o loop será executado. Dentro do loop existe o comando para escrever na tela o valor pego do campo chamado NoUsuario. Note que para pegar o valor dentro do objeto, basta usar o nome que está no SELECT entre colchetes. Pode ser colocado também um número caso prefira, por exemplo: dReader[0] ou dReader[“NoUsuario”].
Bem simples e fácil trabalhar com o DataReader. Vamos ver o resultado na figura 1.

Figura 1 - Imprimindo na tela os valores buscados do banco de dados.
Eu não posso deixar de comentar que toda vez que você utilizar o using SqlConnection, você estará utilizando automaticamente o pool de conexão e comunicação com o banco de dados. Isso significa que, o sistema aproveita a conexão criada anteriormente evitando assim muita comunicação ou requisição com o banco de dados. Aproveita a memória utilizada anteriormente e gasta menos memória para uma nova requisição.
Bom, eu vou ficar por aqui mas já aviso que em breve eu publico outro artigo falando mais sobre o DataReader no preenchimento de alguns objetos de layout. Qualquer dúvida, favor entrar em contato pelo site www.mauriciojunior.org.
Sign up to our newsletter
Receive our latest updates about programming languages, software, database, books, ebooks, classes, jobs and more.