Un'introduzione al DataSet in VB.NET

Gran parte della tecnologia dati di Microsoft, ADO.NET, è fornita dall'oggetto DataSet. Questo oggetto legge il database e crea una copia in memoria di quella parte del database di cui il programma ha bisogno. Un oggetto DataSet di solito corrisponde a una tabella o vista del database reale, ma DataSet è una vista disconnessa del database. Dopo che ADO.NET ha creato un DataSet, non è necessario disporre di una connessione attiva al database, il che aiuta nella scalabilità perché il programma deve solo connettersi con un server di database per i microsecondi durante la lettura o la scrittura. Oltre ad essere affidabile e facile da usare, DataSet supporta sia una vista gerarchica dei dati come XML sia una vista relazionale che è possibile gestire dopo la disconnessione del programma.

È possibile creare visualizzazioni univoche personalizzate di un database utilizzando DataSet. Correlare tra loro gli oggetti DataTable con gli oggetti DataRelation. Puoi persino applicare l'integrità dei dati utilizzando gli oggetti UniqueConstraint e ForeignKeyConstraint. Il semplice esempio seguente utilizza solo una tabella, ma è possibile utilizzare più tabelle da origini diverse se necessario.

Codifica di un DataSet VB.NET

Questo codice crea un DataSet con una tabella, una colonna e due righe:

Il modo più comune per creare un DataSet è utilizzare il metodo Fill dell'oggetto DataAdapter. Ecco un esempio di programma testato:

Il DataSet può quindi essere trattato come un database nel codice del programma. La sintassi non lo richiede, ma normalmente viene fornito il nome della DataTable in cui caricare i dati. Ecco un esempio che mostra come visualizzare un campo.

Sebbene il DataSet sia facile da usare, se l'obiettivo è ottenere prestazioni non elaborate, è meglio scrivere più codice e utilizzare DataReader.

Se è necessario aggiornare il database dopo aver modificato il DataSet, è possibile utilizzare il metodo Update dell'oggetto DataAdapter, ma è necessario assicurarsi che le proprietà DataAdapter siano impostate correttamente con gli oggetti SqlCommand. SqlCommandBuilder viene solitamente utilizzato per fare questo.

DataAdapter scopre cosa è cambiato e quindi esegue un comando INSERT, UPDATE o DELETE, ma come per tutte le operazioni del database, gli aggiornamenti del database possono incorrere in problemi quando il database viene aggiornato da altri utenti, quindi spesso è necessario includere il codice per anticipare e risolvere i problemi quando si cambia il database.

A volte, solo un DataSet fa ciò di cui hai bisogno. Se hai bisogno di una raccolta e stai serializzando i dati, un DataSet è lo strumento da usare. È possibile serializzare rapidamente un DataSet in XML chiamando il metodo WriteXML.

DataSet è l'oggetto più probabile che utilizzerai per i programmi che fanno riferimento a un database. È l'oggetto principale utilizzato da ADO.NET ed è progettato per essere utilizzato in modalità disconnessa.