c# tables Datatable vs Dataset




how to create a datatable c# (5)

em 1.x costumava haver coisas que DataTables não podiam fazer que DataSets pudessem (não lembra exatamente o que). Tudo isso foi alterado em 2.x. Meu palpite é por isso que muitos exemplos ainda usam DataSets. DataTables deve ser mais rápido, pois são mais leves. Se você está apenas obtendo um único conjunto de resultados, é sua melhor escolha entre os dois.

Eu atualmente uso um DataTable para obter resultados de um banco de dados que eu possa usar no meu código.

No entanto, muitos exemplos na Web mostram usando um DataSet e acessando a (s) tabela (s) através do método collections.

Existe alguma vantagem, desempenho sábio ou não, de usar DataSets ou DataTables como um método de armazenamento para resultados de SQL?


Um recurso do DataSet é que, se você puder chamar várias instruções select em seus procedimentos armazenados, o DataSet terá uma DataTable para cada.


Quando você está lidando apenas com uma única tabela, a maior diferença prática que eu encontrei é que o DataSet tem um método "HasChanges", mas o DataTable não. Ambos têm um "GetChanges" no entanto, então você pode usar isso e testar para null.


Isso realmente depende do tipo de dados que você está trazendo de volta. Como um DataSet é (na verdade) apenas uma coleção de objetos DataTable, você pode retornar vários conjuntos distintos de dados em um único objeto e, portanto, mais gerenciável.

Em termos de desempenho, é mais provável que você obtenha ineficiência em consultas não otimizadas do que na opção "errada" do .NET. Pelo menos, essa tem sido minha experiência.


Há algumas otimizações que você pode usar ao preencher uma DataTable, como chamar BeginLoadData (), inserir os dados e chamar EndLoadData (). Isso desativa alguns comportamentos internos da DataTable, como a manutenção do índice, etc. Consulte este artigo para obter mais detalhes.







datatable