ASPITALIA.IT

Sito dedicato alla tecnologia web di Microsoft. Da ASP a ASP.NET trovate articoli e tutorial interessanti adatti anche a chi si av...

Leggi la Descrizione
HTML.IT

Uno dei migliori siti di programmazione presenti sul Web. Se volete iniziare a programmare in qualsiasi linguaggio, html.it &egrav...

Leggi la Descrizione
YoungPortal.it

Portale ricco di risorse per sviluppatori Delphi, asp.net, java. Da poco attiva la nuova sezione SUBSONIC che cerca di andare inco...

Leggi la Descrizione
ASP.NET - DATASET - CREARE UN DATASET

Visitatori: 971

Nella scorsa lezione abbiamo creato il database di test che ci servirà per creare il nostro DataSet.

Per aggiungere un DataSet al nostro Sito Web selezioniamo aggiungi nuovo elemento da esplora soluzioni:

ASP.NET

Selezioniamo DataSet e diamo lo stesso nome del Database (è solo una convenzione adotatta da noi):

ASP.NET GRIDVIEW

Confermando l'operazione VWD vi chiederà se volete salvare il DataSet in una cartella denominata App_Code. Confermate questa scelta in quanto molti siti di Hosting prevedono che il DataSet venga posizionato in una cartella così denominata.

ASP.NET GRIDVIEW

L'area di progettazione apparirà adesso come mostrato in figura sotto:

ASP.NET GRIDVIEW

Come VWD ci suggerisce possiamo trascinare gli elementi del Database direttamente dalla finestra "Esplora Database" a cui nelle lezioni precedenti abbiamo aggiunto la connessione al nostro TestDB:

ASP.NET GRIDVIEW

Da Esplora Database possiamo esaminare la struttura del DB e selezionare le tabelle opportune. Selezioniamo tutte e 4 le cartelle selezionando la prima e quindi, tenendo premuto il tasto shift, l'ultima, dopodichè trascinatele sull'area di progettazione del DataSet:

ASP.NET GRIDVIEW

Poichè abbiamo creato le chiavi esterne nel Database queste vengono evidenziate anche nel DataSet.

Potete notare che per ogni tabella del database è stata creata una DataTable e il corrispondente TableAdapter. Il TableAdapter è un componente del Framework .NET che ci consente di collegarci ad un Database ed eseguire query o storeprocedure restituendo una DataTable o popolandone una esistente (metodo Fill che vedremo più avanti).

I TableAdapter vengono inoltre utilizzati per aggiornare i dati sul Database qualora vengano effettuate delle modifiche, prevedono infatti i metodi INSERT, UPDATE E DELETE.

I TableAdapter sono molto potenti in quanto consentono di gestire diverse query (al contrario del DataAdapter appartenente alle versioni precedenti del Framework) purchè restituiscano un risultato conforme alla DataTable associata (ovvero stessi campi e tipi di dati).

Come abbiamo detto i TableAdapter restituiscono o popolano una DataTable. Possiamo quindi utilizzare questa DataTable come DataSource di una GridView per esempio.

Vediamo un esempio pratico: creiamo un nuovo controllo utente che chiamiamo WCNewsListDataSet.ascx che visualizzerà in una GridView le News contenute nella Tabella News:

ASP.NET GRIDVIEW

Aggiungiamo una label in alto e impostiamo la proprietà Text a "GRIDVIEW BASATA SU DATASET", poi trasciniamo sotto una GridView.

ASP.NET GRIDVIEW

A questo punto dovrete già sapere come associare un'origine dati ad una GridView. Fino ad ora abbiamo sempre associato sorgenti di tipo SqlDataSource in quanto agivamo direttamente sul Database. In questo caso dobbiamo passare attraverso uno strato intermedio tra il Database e l'applicazione che è appunto il DataSet (rappresenta un modello molto semplificato dell'architettura a 3 livelli).

Per utilizzare un DataSet come sorgente dati occore utilizzare il tipo ObjectDataSource. Chiamiamo la nostra origine dati ObjectDataSourceNews:

ASP.NET GRIDVIEW

Nella schermata successiva ci viene chiesto quale TableAdapter utilizzare. Selezioniamo quello relativo alle News:

ASP.NET GRIDVIEW

Ci verranno quindi mostrati i metodi SELECT, UPDATE, INSERT E DELETE che sono stati creati con il NewsTableAdapter

ASP.NET GRIDVIEW

ASP.NET GRIDVIEW

ASP.NET GRIDVIEW

ASP.NET GRIDVIEW

Confermiamo cliccando su "fine". La nostra GridView viene riempita automaticamente con le colonne restituite dal metodo GetData() specificato nella clausola SELECT.

ASP.NET GRIDVIEW

Adesso aggiungiamo una pagina Web al nostro sito denominata NewsListDataSet.aspx a cui aggiungeremo il controllo web appena creato:

ASP.NET GRIDVIEW

ASP.NET GRIDVIEW

A questo punto impostate questa pagina come pagina iniziale del Sito e mandate in esecuzione l'applicazione (se il DB di test è vuoto aggiungete qualche categoria news e almeno una news associata ad una categoria):

 

ASP.NET GRIDVIEW

Avete visto come è davvero semplice realizzare applicazioni web utilizzando i DataSet.

Certo noterete la poco elegante visualizzazione dell'ID_CATEGORIA al posto della descrizione categoria. Tuttavia con i DataSet è molto semplice risolvere questo tipo di problemi. Basta agire direttamente dalla DataTable corrispondente aggiungendo una colonna DESCRIZIONE_CATEGORIA e modificando il metodo GetData() in modo che restituisca anche la descrizione della CATEGORIA.

Nella prossima lezione vedremo appunto come applicare queste modifiche.

Lezione precedente | Indice degli articoli | Lezione successiva