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 - AGGIUNGERE UNA COLONNA AD UNA DATATABLE

Visitatori: 695

Nella scorsa lezione abbiamo creato il DataSet basato sul database TestDB e abbiamo introdotto il concetto di DataTable e TableAdapter. Vedremo in questa lezione come modificare la DataTable legata alla Tabella News del DB per aggiungere una colonna che visualizzi la descrizione della categoria e non l'ID.

Una cosa molto importante da tener presente è che i metodi di una DataTable devono restituire gli stessi campi elencati nella DataTable (ovvero devono rispettarne lo schema). Se provassimo a modificare la query legata al metodo GetData() per selezionare anche la descrizione categoria con una SUBSELECT (cosa che faremo tra poco) avremmo un errore in quanto Visual Web Developer ci avviserebbe che la colonna DescrizioneCategoria non fa parte dello schema della DataTable.

Per risolvere questo problema è necessario aggiungere una colonna alla DataTAble e dare lo stesso nome del campo selezionato nella SUBSELECT o eventualmente quello dell'Alias di colonna che utilizzeremo (spesso infatti può esserci già un campo con lo stesso nome ed è quindi necessario utilizzare un Alias).

Aggiungiamo quindi un campo DESCRIZIONE_CATEGORIA alla nostra DataTable:

ASP.NET

Chiamiamo la colonna DESCRIZIONE_CATEGORIA:

ASP.NET GRIDVIEW

A questo punto modifichiamo il metodo GetData() cliccando col tasto destro del mouse e selezionando "configura":.

ASP.NET GRIDVIEW

VWD ci mostra la query che viene utilizzata dal metodo:

ASP.NET GRIDVIEW

Modifichiamo la query per aggiungere la selezione della descrizione categoria tramite una SUBSELECT:

SELECT ID_NEWS, ID_CATEGORIA,
(SELECT DESCRIZIONE FROM CATEGORIE_NEWS WHERE CATEGORIE_NEWS.ID_CATEGORIA=NEWS.ID_CATEGORIA) AS DESCRIZIONE_CATEGORIA,
TITOLO, DESCRIZIONE, DATA, ATTIVA FROM dbo.NEWS

ASP.NET GRIDVIEW

A questo punto cliccate su avanti e quindi su fine. Adesso riaprite il WebControl con la lista delle News creato nella lezione precedente:

ASP.NET GRIDVIEW

Dal menu contestuale della GridView selezionate "Configura origine dati..". Selezionate quindi nuovamente il TableAdapter relativo alle News:

ASP.NET GRIDVIEW

Quindi il metodo GetData() che abbiamo appena modificato nella clausola SELECT:

ASP.NET GRIDVIEW

A questo punto cliccate su fine. VWD vi chiederà se volete rigenerare le colonne della GridView. Selezionate !Si" in modo che venga aggiunto il nuovo campo DESCRIZIONE_CATEGORIA:

ASP.NET GRIDVIEW

VWD aggiunge il campo come ultima colonna della gridview:

ASP.NET GRIDVIEW

Selezionate quindi "modifica colonne" dal menu contestuale della GridView:

ASP.NET GRIDVIEW

e nell'ordine:

- RENDETE INVISIBILE LA COLONNA ID_CATEGORIA

- SPOSTATE LA COLONNA DESCRIZIONE_CATEGORIA SUBITO DOPO ID_CATEGORIA

ASP.NET GRIDVIEW

A questo punto mandate nuovamente in esecuzione il progetto:

ASP.NET GRIDVIEW

Avete visto come è davvero semplice personalizzare i metodi di una DataTable modificando le query.

Nella prossima lezione vedremo come inserire dati tramite DataSet.

Lezione precedente | Indice degli articoli | Lezione successiva