DataSet di ADO.NET

L'oggetto DataSet è fondamentale per il supporto offerto da ADO.NET in scenari di dati disconnessi e distribuiti. Il DataSet è una rappresentazione di dati residente in memoria, che fornisce un modello di programmazione relazionale coerente indipendente dall'origine dati. È possibile utilizzarlo con numerose e svariate origini dati, con dati XML o per la gestione di dati locali all'applicazione. Il DataSet rappresenta un insieme completo di dati, che include tabelle correlate, vincoli e relazioni tra le tabelle. Nell'immagine seguente viene mostrato il modello di oggetti DataSet.

Modello di oggetti DataSet

I metodi e gli oggetti di un DataSet sono coerenti ai metodi e agli oggetti del modello di database relazionale.

Il DataSet è inoltre in grado di mantenere fissi e ricaricare i contenuti come XML e il relativo schema sotto forma di schema XSD (Schema Definition Language) di XML.

DataTableCollection

In un DataSet di ADO.NET è disponibile un insieme di zero o più tabelle rappresentate da oggetti DataTable. In DataTableCollection sono contenuti tutti gli oggetti DataTable di un DataSet.

Un oggetto DataTable viene definito nello spazio dei nomi System.Data e rappresenta una singola tabella di dati residenti in memoria. In tale oggetto sono contenuti un insieme di colonne rappresentato da DataColumnCollection e dei vincoli rappresentati da ConstraintCollection. Lo schema della tabella viene definito da questi due elementi. In un oggetto DataTable è inoltre presente un insieme di righe rappresentato da DataRowCollection, contenente i dati della tabella. Oltre allo stato corrente, in DataRow vengono mantenute sia la versione corrente che la versione originale, in modo da consentire l'identificazione delle modifiche apportate ai valori memorizzati nella riga.

DataRelationCollection

Le relazioni di un DataSet sono contenute nell'oggetto DataRelationCollection. Una relazione, rappresentata dall'oggetto DataRelation, consente di associare le righe di una DataTable alle righe di un'altra DataTable. È analoga a un eventuale percorso di join esistente tra colonne di chiave primaria e di chiave esterna di un database relazionale. Un DataRelation consente di identificare delle colonne corrispondenti in due tabelle di un DataSet.

Le relazioni consentono lo spostamento da una tabella all'altra all'interno di un DataSet. Gli elementi essenziali di un DataRelation sono il nome della relazione, il nome delle tabelle correlate e le colonne correlate in ogni tabella. È possibile creare relazioni con più di una colonna per tabella specificando una matrice di oggetti DataColumn come colonne chiave. Quando si aggiunge una relazione a DataRelationCollection, è possibile aggiungere anche un vincolo UniqueKeyConstraint e un vincolo ForeignKeyConstraint, per applicare vincoli di integrità quando vengono apportate modifiche a valori di colonne correlate.

ExtendedProperties

La proprietà ExtendedProperties è disponibile nel DataSet (oltre che nella DataTable e in DataColumn). ExtendedProperties è un PropertyCollection in cui è possibile inserire informazioni personalizzate, quali un'istruzione SELECT utilizzata per generare il gruppo di risultati o un indicatore di data e ora relativo alla generazione dei dati. L'insieme ExtendedProperties viene mantenuto fisso insieme alle informazioni relative allo schema per il DataSet (oltre alla DataTable e a DataColumn).

Vedere anche

Cenni preliminari su ADO.NET | Architettura di ADO.NET | Classe DataColumn | Classe DataColumnCollection | Classe DataRelation | Classe DataRelationCollection | Classe DataRowCollection | Classe DataSet | Classe DataTable | Classe DataTableCollection | Classe PropertyCollection