Vă mulțumim pentru susținere

Datatable vs Dataset

În prezent folosesc un tabel de date pentru a obține rezultate dintr-o bază de date pe care o pot folosi în codul meu.

Cu toate acestea, multe exemple de pe rețeaua de web folosesc în schimb un DataSet și accesând tabelul (tabelele) prin metoda colecțiilor.

Există vreun avantaj, performanță sau altfel, de a utiliza datele sau seturile de date ca o metodă de stocare a rezultatelor SQL?

0
adăugat editat
Dacă lucrați cu aplicații web, poate doriți să ia în considerare utilizarea unui DataReader: ASPNET. 4guysfromrolla.com/articles/050405-1.aspx aspnet.4guysfromrolla.com /articles/051805-1.aspx devx.com/ vb2themax / articolul / 19887/1954? PF = true
adăugat autor GernBlandston

6 răspunsuri

O caracteristică a setului de date este că, dacă puteți să apelați mai multe instrucțiuni selectate în procedurile stocate, DataSet va avea un tabel de date pentru fiecare.

0
adăugat
De asemenea, puteți rula mai multe interogări SQL selectate într-un singur SQLCommand și puteți accesa fiecare set de rezultate în setul de date.Tabelul [i]
adăugat autor Jan

Depinde într-adevăr de tipul de date pe care le aduceți înapoi. Dat fiind că un DataSet este (în fapt) doar o colecție de obiecte DataTable, puteți returna mai multe seturi distincte de date într-un singur obiect și, prin urmare, mai ușor de gestionat.

Din punct de vedere al performanței, este mai probabil să obțineți ineficiență din interogările neoptimizate decât din alegerea "gresită" a construcției .NET. Cel puțin, asta a fost experiența mea.

0
adăugat

in 1.x existau lucruri pe care tabelele de date nu le-ar fi putut face care ar putea fi DataSets (nu-mi amintesc exact ce). Tot ce a fost schimbat în 2.x. Cred că de aceea multe exemple utilizează în continuare seturi de date. Tabelele de date ar trebui să fie mai rapide, deoarece sunt mai ușoare. Dacă trageți doar un singur set de rezultate, alegeți-vă cea mai bună dintre cele două.

0
adăugat
AFAIC unul mare a fost faptul că un DataTable nu a putut fi serializat și nu a putut fi returnat ca urmare a unui WebService.
adăugat autor Martin Clarke

O diferență majoră este că datele pot conține mai multe tabele și puteți defini relațiile dintre aceste tabele.

Dacă vă întoarceți doar un singur set de rezultate, deși aș crede că un DataTable ar fi mai optimizat. Cred că trebuie să existe unele cheltuieli (acordate mici) care să ofere funcționalitatea unui DataSet și să țină evidența mai multor tabele de date.

0
adăugat

Când aveți de-a face cu o singură masă oricum, cea mai mare diferență practică pe care am găsit-o este că DataSet are o metodă "HasChanges", dar DataTable nu o face. Ambele au un "GetChanges" cu toate acestea, astfel încât să puteți folosi că și de testare pentru null.

0
adăugat

Există câteva optimizări pe care le puteți utiliza la completarea unui DataTable, cum ar fi apelul BeginLoadData (), introducerea datelor, apoi apelarea EndLoadData (). Acest lucru dezactivează un comportament intern din cadrul DataTable, cum ar fi menținerea indexului etc. Vezi acest articol pentru mai multe detalii.

0
adăugat