domingo, 1 de agosto de 2010

Mini-Curso C# - Parte #8 - ADO.NET

Dicas para utilizar melhor o DataReader
By - Marcoratti
 
  • O DataReader deve ser fechado antes de acessar qualquer parâmetro de saida para um Command associado.
  • Sempre feche o DataReader quando você terminou de ler os dados. Se a conexão que você esta usando é usada somente para retornar o DataReader feche a conexão imediatamente depois de fechar o DataReader.
  • Somente um DataReader pode ser aberto de cada vez.
  • Ao acessar os dados de uma coluna use os conectores tipados como GetString, GetInt32 ao invés de GetValue.
  • Se você estiver terminando de ler dados de um DataAdapter mas ainda tem uma grande quantidade de dados não 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 não leu quando ele foi fechado.

Boas práticas  para acesso a dados com ADO.NET

  • Abra conexões o mais tarde possível e Feche as conexões o mais cedo possível;
  • Em operações que envolvam alterações de dados (UPDATE, INSERT, DELETE) em mais de uma tabela simultaneamente sempre utilize Transações;
  • De forma geral todas as tabelas devem possuir uma chave primária
  • Ao montar instruções SQL dê preferência a utilização de parâmetros nas strings SQL e evite a concatenação de strings. Desta forma evita-se erros e ataques de injeção SQL. A utilização de parâmetros permite que o SGBD compile o código SQL apenas uma vez;
  • Ao utilizar o operador LIKE em instruções SQL a string usada na cláusula é o símbolo % e não o *. O correto é : SELECT nome FROM tabela where nome like 'Mac%'
  • Procure construir filtros e ordenações diretamente na instrução SQL , usando as cláusulas WHERE, ORDER e GROUP e não via código;
  • Procure evitar o uso do coringa (*) em instruções SQL com SELECT procurando nomear os campos que deseja obter da base de dados e sempre usando uma condição para evitar que todos os registros sejam selecionados. Evite : SELECT * from Tabela.
   
Take care

Nenhum comentário: