DataReader ou DataSet ? eis a questão !!!


DataReader ou DataSet ?  Será o DataReader melhor que o DataSet ?  Será que existe um diferença significativa ?

Não é uma tarefa tão simples como parece dizer quando usar uma ou outra classe , tudo vai depender do contexto.

Vou assumir que você já tenha noções sobre essas duas classes e que o contexto sejam as aplicações ASP.NET ( a coisa pode ser diferente em aplicações Windows Forms ). Com isto em mente segue abaixo uma relação de quando usar DaReader ou DataSet :

Obs: Para ficar por dentro leia os artigos :

  1. VB.NET - ADO.NET - uma visão geral IV : Objeto DataSet.
  2. VB.NET _ ADO.NET - Uma visão Geral I : Objeto Connection - DataReader

Situações quando o uso de DataReader é recomendado :

  1. Os dados com os quais você esta trabalhando precisam estar sempre atualizados , ou seja , você precisa de dados on-line em tempo real . Neste caso usar um DataReader é menos oneroso para o desempenho do seu sistema.
  2. Você precisa acessar dados individuais localizados a cada momento para atualizar o seu sistema.
  3. Você precisa apenas de um acesso onde os dados não sofrerão atualizações nem buscas e serão somente exibidos.( i.e uma conexão do tipo somente-leitura e somente-para-frente)
  4. Você terá que fazer repetidas chamadas a base de dados para obter pequenas porções de informações

Situações onde o uso de um DataSet é recomendado:

  1. Você esta criando um Web Service que utiliza os dados que você esta retornando como valores de retorno. Como um DataReader mantém uma conexão permanente com a fonte de dados ele não pode ser serializado em XML e assim não pode ser transmitido pela rede pelo consumidor do Web Service.
  2. Você precisa filtrar e ordernar seus dados.
  3. Você precisa interagir com os dados mais de uma vez na mesma requisição.
  4. Você precisa armazenar os dados que serão usados novamente por subsequentes requisições de páginas.
  5. Você precisa carregar e manipular dados XML em duas dimensões.
  6. A sua fonte de dados não é um banco de dados . Um DataSet pode carregar dados diretamente de um arquivo XML e interpretar o seu esquema dinamicamente.

Até mais !!