Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda DataReader vs. DataSet | Otimizando Operações de Banco de Dados
Introdução ao .NET com C#
course content

Conteúdo do Curso

Introdução ao .NET com C#

Introdução ao .NET com C#

1. Introdução
2. Programação Assíncrona e Introdução a Web Services
3. Introdução a Bancos de Dados com .NET
4. Operações CRUD com MySQL
5. Otimizando Operações de Banco de Dados

book
DataReader vs. DataSet

Na seção anterior, utilizamos o objeto MySqlDataReader para ler dados do banco de dados.

Em teoria, o DataReader (ou MySqlDataReader) não recupera todos os dados ao executar uma consulta. Em vez disso, ele obtém os dados de forma sequencial, ou seja, recupera uma linha por vez. Quando executamos o método Read(), ele recupera a próxima linha do banco de dados em tempo real.

Por isso, é necessário manter uma conexão ativa com o banco de dados durante a leitura dos dados. Isso também explica por que precisamos fechar o objeto DataReader após a leitura dos dados.

Por outro lado, existe outro método para recuperar dados, que é por meio de um DataAdapter. Um DataAdapter busca os dados relevantes no banco de dados e preenche um DataSet com os dados recuperados, basicamente criando uma cópia desses dados. Um DataSet é um tipo especial de classe para armazenar dados recuperados de um banco de dados SQL. Podemos acessar e visualizar facilmente os dados de um DataSet.

Embora ambos os métodos possam parecer quase iguais, DataReader e DataSet apresentam algumas diferenças significativas:

Uso de Memória e Armazenamento:

  • DataReader recupera dados do banco de dados um registro por vez e mantém a conexão aberta enquanto lê os dados. Ele não armazena os dados na memória. Isso resulta em uso mínimo de memória;

  • DataSet armazena os dados recuperados do banco de dados na memória dentro da aplicação.

Acessibilidade e Navegação:

  • DataReader fornece um fluxo rápido e somente para frente de dados. Permite acesso sequencial aos dados e não suporta acesso aleatório ou navegação. Uma vez que um registro é lido, ele não pode ser revisitado a menos que a consulta seja executada novamente;

  • DataSet permite iterar pelas linhas em qualquer ordem e modificar dados dentro do DataSet sem afetar os dados originais no banco de dados.

Acesso em Tempo Real vs. Acesso Desconectado:

  • DataReader fornece acesso em tempo real aos dados do banco de dados. Requer uma conexão ativa com o banco de dados durante a leitura dos dados, e a conexão permanece aberta até que todos os dados sejam lidos ou até que o DataReader seja explicitamente fechado;

  • DataSet fornece acesso desconectado aos dados. Uma vez que os dados são recuperados do banco de dados e armazenados no DataSet, a conexão com o banco pode ser fechada. Os dados ficam então disponíveis na aplicação e podem ser manipulados offline sem a necessidade de manter uma conexão com o banco de dados.

A partir das vantagens e desvantagens mencionadas acima, pode-se concluir que o DataReader é adequado para cenários onde o acesso somente para frente aos dados é suficiente, enquanto o DataSet é mais indicado para cenários onde se deseja minimizar o tempo de conexão e é necessário trabalhar com os dados de forma interativa.

1. Qual das seguintes afirmações sobre o DataReader é verdadeira?

2. O que o DataSet armazena na memória?

question mark

Qual das seguintes afirmações sobre o DataReader é verdadeira?

Select the correct answer

question mark

O que o DataSet armazena na memória?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 5. Capítulo 3

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

course content

Conteúdo do Curso

Introdução ao .NET com C#

Introdução ao .NET com C#

1. Introdução
2. Programação Assíncrona e Introdução a Web Services
3. Introdução a Bancos de Dados com .NET
4. Operações CRUD com MySQL
5. Otimizando Operações de Banco de Dados

book
DataReader vs. DataSet

Na seção anterior, utilizamos o objeto MySqlDataReader para ler dados do banco de dados.

Em teoria, o DataReader (ou MySqlDataReader) não recupera todos os dados ao executar uma consulta. Em vez disso, ele obtém os dados de forma sequencial, ou seja, recupera uma linha por vez. Quando executamos o método Read(), ele recupera a próxima linha do banco de dados em tempo real.

Por isso, é necessário manter uma conexão ativa com o banco de dados durante a leitura dos dados. Isso também explica por que precisamos fechar o objeto DataReader após a leitura dos dados.

Por outro lado, existe outro método para recuperar dados, que é por meio de um DataAdapter. Um DataAdapter busca os dados relevantes no banco de dados e preenche um DataSet com os dados recuperados, basicamente criando uma cópia desses dados. Um DataSet é um tipo especial de classe para armazenar dados recuperados de um banco de dados SQL. Podemos acessar e visualizar facilmente os dados de um DataSet.

Embora ambos os métodos possam parecer quase iguais, DataReader e DataSet apresentam algumas diferenças significativas:

Uso de Memória e Armazenamento:

  • DataReader recupera dados do banco de dados um registro por vez e mantém a conexão aberta enquanto lê os dados. Ele não armazena os dados na memória. Isso resulta em uso mínimo de memória;

  • DataSet armazena os dados recuperados do banco de dados na memória dentro da aplicação.

Acessibilidade e Navegação:

  • DataReader fornece um fluxo rápido e somente para frente de dados. Permite acesso sequencial aos dados e não suporta acesso aleatório ou navegação. Uma vez que um registro é lido, ele não pode ser revisitado a menos que a consulta seja executada novamente;

  • DataSet permite iterar pelas linhas em qualquer ordem e modificar dados dentro do DataSet sem afetar os dados originais no banco de dados.

Acesso em Tempo Real vs. Acesso Desconectado:

  • DataReader fornece acesso em tempo real aos dados do banco de dados. Requer uma conexão ativa com o banco de dados durante a leitura dos dados, e a conexão permanece aberta até que todos os dados sejam lidos ou até que o DataReader seja explicitamente fechado;

  • DataSet fornece acesso desconectado aos dados. Uma vez que os dados são recuperados do banco de dados e armazenados no DataSet, a conexão com o banco pode ser fechada. Os dados ficam então disponíveis na aplicação e podem ser manipulados offline sem a necessidade de manter uma conexão com o banco de dados.

A partir das vantagens e desvantagens mencionadas acima, pode-se concluir que o DataReader é adequado para cenários onde o acesso somente para frente aos dados é suficiente, enquanto o DataSet é mais indicado para cenários onde se deseja minimizar o tempo de conexão e é necessário trabalhar com os dados de forma interativa.

1. Qual das seguintes afirmações sobre o DataReader é verdadeira?

2. O que o DataSet armazena na memória?

question mark

Qual das seguintes afirmações sobre o DataReader é verdadeira?

Select the correct answer

question mark

O que o DataSet armazena na memória?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 5. Capítulo 3
some-alt