Datatable vs Dataset

voti
104

Attualmente uso un DataTable per ottenere risultati da un database che posso usare nel mio codice.

Tuttavia, molti esempio nella serie web utilizzando un DataSet invece e accede alla tabella (s) attraverso il metodo raccolte.

C'è qualche vantaggio, le prestazioni saggia o meno, di utilizzare DataSet o DataTable come metodo di archiviazione per i risultati di SQL?

È pubblicato 05/08/2008 alle 14:07
fonte dall'utente
In altre lingue...                            


7 risposte

voti
6

in 1.x ha usato per essere cose DataTable non poteva fare che DataSets potevano (non ricordo esattamente cosa). Tutto ciò che è stato cambiato in 2.x. La mia ipotesi è per questo che un sacco di esempi usano ancora DataSet. DataTable dovrebbero essere più veloce in quanto sono più leggeri. Se si sta solo tirando un unico gruppo di risultati, è la tua scelta migliore tra i due.

Risposto il 05/08/2008 a 14:10
fonte dall'utente

voti
82

In realtà dipende il tipo di dati che si sta riportando. Dal momento che un DataSet è (in effetti) solo un insieme di oggetti DataTable, si può tornare più insiemi distinti di dati in un unico, e quindi più gestibile, oggetto.

Performance-saggio, è molto più probabile per ottenere inefficienza da query non ottimizzate rispetto dalla scelta "sbagliata" del costrutto .NET. Almeno, questa è stata la mia esperienza.

Risposto il 05/08/2008 a 14:12
fonte dall'utente

voti
5

Una caratteristica del DataSet è che se si può chiamare più istruzioni SELECT nella stored procedure, il DataSet avrà un DataTable per ciascuno.

Risposto il 05/08/2008 a 14:15
fonte dall'utente

voti
3

Ci sono alcune ottimizzazioni che è possibile utilizzare durante la compilazione di un DataTable, come chiamare BeginLoadData (), inserendo i dati, quindi chiamando EndLoadData (). Ciò disattiva alcuni comportamenti interna DataTable, come la manutenzione indice, etc. Vedi questo articolo per ulteriori dettagli.

Risposto il 14/09/2008 a 03:55
fonte dall'utente

voti
19

Una differenza importante è che gruppi di dati possono contenere più tabelle e si può definire le relazioni tra tali tabelle.

Se sei solo restituire un singolo set di risultati anche se penserei un DataTable sarebbe più ottimizzato. Vorrei pensare che ci deve essere un certo overhead (concesso piccolo) per offrire la funzionalità di un DataSet fa e tenere traccia di più DataTable.

Risposto il 14/09/2008 a 04:07
fonte dall'utente

voti
0

Quando si è solo a che fare con un unico tavolo in ogni caso, la differenza pratica più grande che ho trovato è che DataSet ha un metodo "HasChanges", ma DataTable non lo fa. Entrambi hanno un "GetChanges", tuttavia, in modo da poter utilizzare quello e prova per nulla.

Risposto il 05/12/2016 a 15:50
fonte dall'utente

voti
0

Un oggetto DataTable rappresenta dati tabulari come una cache tabulare in memoria di righe, colonne e vincoli. Il DataSet è costituito da un insieme di oggetti DataTable che si può riguardare gli uni agli altri con oggetti DataRelation.

Risposto il 30/08/2019 a 03:45
fonte dall'utente

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more