DataTable ou SqlDataReader - Fórum DevMedia
DataTable ou SqlDataReader
estou fazendo minha classe de acesso a dados e uma de conexao.
Na classe de conexao eu tenho um metodo que lista registros de uma determinada tabela.
Qual a melhor forma de devolver os dados: SqlDataReader ou DataTable ?
Qual é o mais rápido para trabalhar ?
OBS: Não gostaria de usar o SqlDataReader em outra camada, pois não qro utilizar a System.Data.SqlClient, acho que não faz parte dessa camanda, e sim somente da classe do DB.
Existem duas formas de trabalhar com acesso à dados(no seu caso):
Conectado - SqlDataReader
Desconectado - DataSet e/ou DataTable usando TableAdapter para acesso ao banco
Tranbalhando de forma conectada à base de dados, é necessário uma conexão ativa com o banco de dados, isso pode gerar um pouco mais de processamento quando a massa de dados é relativamente grande.
Trabalhando de forma desconectada além de ser uma forma elegante de trabalhar com dados no .Net não é necessário uma conexão ativa durante a manipulação de dados.
Aconselho pesquisar sobre alguma ferramenta de ORM(Linq to Sql, Entity Framework, Nhibernate etc), isso irá facilitar muito o desenvolvimento de sua aplicação.
- 16 abr 2010
Relacionamento Mestre-Detalhe com verificação de integridade Podemos efetuar operações com as colunas do lado do cliente (Soma, Média , etc..) que podem ser persistidas mesmo que os dados se alterem. Ordenação e Filtragem de dados no lado do cliente sem a necessidade de um round-trip ao Banco de dados Uma variedade de opções na vinculação de dados: DataGrid , WinForms e .NET Controls. Integração com o DataAdapter para atualização automática de atualizações. Poder ler e escrever diretamente uma representação XML de dados relacionados.
Amigo, já que você fala em camadas e classes, pq não avançar para uma outra coisa mais madura tipo o nHibernate ou até mesmo o EntityFramework?
Hoje pouca gente gente usa isso (dataset ou datareader) em sistemas novos por trazerem vários problemas na hora da manutenção.
Mas muitos lugares ainda usam o FrameWork 2.0, gostaria de usar procedures e não trabalhar como o linq, pois qualquer alteração precisa gerar uma nova dll.
Já trabalhei com o LINQ e não gostei muito da performace dele, acho q não tem nada igual ao SqlClient.
Amigo Danilo, vc esta inteiramente equivocado. Falar em maturidade com Linq e nHibernate é brincadeira ne?!?!
Procure ler um pouco mais sobre grandes empresas e sistemas robustos e veja qual usa Linq ou mesmo nHibernate. Nenhuma....
Geralmente, quando a empresa tem condições, eles desenvolvem seu proprio framework. Mas na maioria das vezes é usado Enterprise Library. DAAB. []s