Вы находитесь на странице: 1из 2

Como trabalhar com DataReaders, DataSets, DataAdapters, e DataViews ? ADO.NET, at a verso 1.

1, fornecia dois objetos para retornar e armazenar dados em memria: DataSet e DataReader. DataReader - Fornece um acesso conectado somente-leitura e somente-parafrente a uma fonte de dados. DataSet - Fornece um representao relacional em memria de dados , sendo um conjunto completo de dados que incluem tabelas que contm dados, restries de dados e relacionamentos entre as tabelas. O acesso desconectado. - Quando voc usa um DataSet frequentemente voc tambm usa um DataAdapter (e possivelmente um CommandBuilder) para interagir com sua fonte de dados. - Quando voc usa um DataSet voc pode empregar um DataView para aplicar ordenamento e filtragem nos dados do DataSet. - O DataSet tambm pode ser herdado para criar um DataSet fortemente tipado com o objetivo de expor tabelas, linhas e colunas como propriedades de objetos fortemente tipados. Afinal DataSet ou DataReader ? Para decidir se voc deve usar um DataSet ou um DataReader em sua aplicao de acesso a dados, voc deve considerar o nvel de funcionalidade que vai precisar usar na sua aplicao. Voc deve usar um DataSet em sua aplicao quando: voc precisar trabalhar com mais de uma tabela de dados simultaneamente. Voc precisar de navegao entre mltiplas tabelas de resultados. voc precisar manipular dados de mltiplas fontes: banco de dados , arquivos XML, arquivos textos, planilhas eletrnicas, etc... voc precisar trocar dados entre camadas ou usar um Web Service XML. voc precisar reutilizar o mesmo conjunto de linhas para alcanar desempenho atravs de cache de dados (via ordenao, busca ou filtro de dados) voc precisar efetuar uma grande quantidade de processamento por linha. voc precisar manipular dados usando operaes XML como XLST ou consultas XPath.

Voc deve usar um DataReader em sua aplicao quando: Voc precisar trabalhar somente com uma tabela de dados por vez voc no precisar usar cache de dados voc precisar somente exibir os dados de uma tabela voc precisar acessar de forma rpida e de uma vez os dados de uma forma somente-leitura e somente-para-frente voc precisar processar uma quantidade de dados muito grande para caber na memria

Nota: O DataAdapter usa o DataReader par preencher o DataSet. Desta forma , o desempenho ganho pela utilizao do DataReader que voc salva na memria os dados que o DataSet ir consumir. Em resumo: utilize um DataReader sempre que voc puder, deixando a utilizao de um DataSet para os casos realmente necessrios. Dicas para utilizar melhor o DataReader O DataReader deve ser fechado antes de acessar qualquer parmetro de saida para um Command associado. Sempre feche o DataReader quando voc terminou de ler os dados. Se a conexo que voc esta usando usada somente para retornar o DataReader feche a conexo imediatamente depois de fechar o DataReader. O DataReader no pode ser trocado entre camadas pois foi criado para acesso a dados conectado. Somente um DataReader pode ser aberto de cada vez. Ao acessar os dados de uma coluna use os conectores tipados como GetString, GetInt32 ao invs de GetValue. Se voc estiver terminando de ler dados de um DataAdapter mas ainda tem uma grande quantidade de dados no lidos pendentes, use o comando Cancel no Command antes de efetuar o Close no DataReader. Se voc dar um close no DataReader isto provocar o retorno dos dados pendentes antes de fechar o cursor. Ao usar o Cancel no Command voc estar descartando os dados pendentes que o DataReader ainda no leu quando ele foi fechado.

Boas prticas para acesso a dados com ADO.NET Abra conexes o mais tarde possvel e Feche as conexes o mais cedo possvel; Em operaes que envolvam alteraes de dados (UPDATE, INSERT, DELETE) em mais de uma tabela simultaneamente sempre utilize Transaes; De forma geral todas as tabelas devem possuir uma chave primria Ao montar instrues SQL d preferncia a utilizao de parmetros nas strings SQL e evite a concatenao de strings. Desta forma evita-se erros e ataques de injeo SQL. A utilizao de parmetros permite que o SGBD compile o cdigo SQL apenas uma vez; Ao utilizar o operador LIKE em instrues SQL a string usada na clusula o smbolo % e no o *. O correto : SELECT nome FROM tabela where nome like 'Mac%' Procure construir filtros e ordenaes diretamente na instruo SQL , usando as clusulas WHERE, ORDER e GROUP e no via cdigo; Procure evitar o uso do coringa (*) em instrues SQL com SELECT procurando nomear os campos que deseja obter da base de dados e sempre usando uma condio para evitar que todos os registros sejam selecionados. Evite : SELECT * from Tabela.

Вам также может понравиться