Programmazione di database e per il Web - Parte IV

Pagina creata da Camilla Santini
 
CONTINUA A LEGGERE
Parte IV
Programmazione di database e per
il Web
   In questa parte:
   Capitolo 18 Introduzione ad ADO.NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441
   Capitolo 19 Presentazione dei dati mediante il controllo DataGridView. . . . . . . 467
   Capitolo 20 Creazione di siti e pagine Web con Visual Web Developer
   e ASP.NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491

In questa parte, apprenderai come utilizzare le informazioni memorizzate in database e siti Web.
Per prima cosa, affronteremo l'argomento Microsoft ADO.NET, un importante modello per l’uso
di informazioni provenienti da database, e imparerai come visualizzare, modificare ed esaminare il
contenuto di un database utilizzando una combinazione di codice e controlli dei Windows Form.
Microsoft Visual Studio 2010 è stato progettato specificamente per creare applicazioni in grado di
fornire l’accesso a un’ampia varietà di origini dati. Tradizionalmente, queste interfacce personalizzate
vengono chiamate database front end per indicare che con le applicazioni sviluppate in Microsoft
Visual Basic, l’utente può consultare le informazioni contenute nel database e disporre di funzionalità
che vanno ben oltre la semplice manipolazione dei record presenti al suo interno. In Visual Studio
2010 è possibile creare applicazioni incentrate sui dati; ciò significa che mediante l’applicazione,
l’utente è invitato a esplorare l’intero potenziale di un numero qualsiasi di connessioni a origini dati,
sia locali sia remote, e che l’applicazione pone tali dati al centro delle attività svolte dall’utente sul
computer.

                                                                                                                                           439
Capitolo 18
Introduzione ad ADO.NET
   Al termine di questo capitolo sarai in grado di:
    ■    Utilizzare la procedura Configurazione guidata origine dati per stabilire una connessione con
         un database e creare un dataset.
    ■    Utilizzare le finestre Progettazione DataSet e Origini dati per esaminare i membri di un dataset
         e creare, nei form, oggetti a loro associati.
    ■    Creare applicazioni incentrate sui dati utilizzando dataset e oggetti per esplorare i dati.
    ■    Utilizzare controlli TextBox e MaskedTextBox per visualizzare le informazioni dei database in un
         form.
    ■    Creare query SQL per filtrare e ordinare le informazioni dei dataset tramite lo strumento
         Generatore di query di Visual Studio.
   In questo capitolo vengono illustrate le prime fasi dell’uso di ADO.NET e delle applicazioni
   incentrate sui dati. La procedura Configurazione guidata origine dati sarà impiegata per stabilire
   una connessione con un database Microsoft Access presente sul sistema, quindi verrà creato un
   dataset che rappresenti un sottoinsieme di campi e record di una tabella di database; le finestre
   Progettazione DataSet e Origini dati saranno usate per esaminare i membri di un dataset e creare
   oggetti associati nei propri form. Inoltre, verrà illustrato anche come utilizzare i controlli TextBox e
   MaskedTextBox per restituire le informazioni dei database agli utenti, e come creare istruzioni SQL
   (Structured Query Language) SELECT in grado di filtrare i dataset e di conseguenza ciò che gli utenti
   potranno vedere e utilizzare.

Programmazione di database con ADO.NET
   Un database è una raccolta organizzata di informazioni memorizzata in un file. Oggi esiste una
   grande varietà di prodotti che permettono di creare potenti database, tra cui Microsoft Access,
   Microsoft SQL Server e Oracle. Se necessario, è possibile anche memorizzare e inviare le informazioni
   dei database tramite XML (Extensible Markup Language), un formato di file progettato per lo
   scambio di dati strutturati via Internet e in altri ambiti.

   La creazione e la gestione dei database è diventata un’attività fondamentale per tutte le principali
   grandi aziende, gli enti governativi, le agenzie no-profit e la maggior parte delle piccole imprese.
   Nel mondo del lavoro è sempre più importante poter disporre di grandi quantità di dati, ad esempio
   indirizzi di clienti, inventari, bilanci contabili, record relativi ai dipendenti o la cronologia degli ordini
   ricevuti.

                                                                                                              441
442 Parte IV Programmazione di database e per il Web

     Per creare nuovi database è possibile servirsi di Visual Studio 2010, anche se questo strumento
     è concepito principalmente per visualizzare, analizzare e manipolare le informazioni contenute
     in database esistenti. ADO.NET, introdotto la prima volta in Microsoft Visual Studio .NET 2002,
     rappresenta ancora il modello standard per la programmazione di database in Visual Studio 2010.
     Negli anni, questo strumento è stato sviluppato, affinché potesse funzionare con numerosi scenari
     di accesso dati, e ottimizzato in modo specifico per l'utilizzo di Internet. Ad esempio, utilizza lo
     stesso metodo base per l’accesso a origini dati locali, client-server e basate su Internet, e sfrutta
     XML per il formato interno dei propri dati.

     Fortunatamente, la maggior parte delle applicazioni create dai programmatori con Microsoft
     Visual Basic 2008 e ADO.NET continuano a funzionare in modo ottimale e le tecniche di base per
     l'accesso a un database sono rimaste quasi del tutto uguali anche in Visual Basic 2010. Tuttavia, in
     Visual Studio 2010 sono state introdotte due nuove tecnologia database estremamente utili per i
     programmatori più esperti. Queste tecnologie sono LINQ (Language-Integrated Query) e ADO.
     NET Entity Framework.

     LINQ fa parte di Visual Studio 2010 e offre la possibilità di creare query di database orientate agli
     oggetti direttamente nel codice Visual Basic. ADO.NET Entity Framework introduce un nuovo
     modello di oggetto, nuove e potenti funzionalità e strumenti in grado di liberare ulteriormente
     le applicazioni per database dalla dipendenza da parti di codice create manualmente e legate a
     una particolare piattaforma dati o modello logico. Con la costante evoluzione della tecnologia
     dei database e di Internet, ADO.NET continuerà a evolversi e i programmatori di Visual Basic
     dovrebbero essere in grado di sfruttare positivamente queste innovazioni.

     Terminologia per i database
     Il tema conduttore della sezione precedente è che i programmatori di database si trovano spesso
     a dover affrontare nuove tecnologie da assimilare e padroneggiare, un processo che spesso viene
     avviato dai termini nuovo paradigma o nuovo modello di database. Nonostante la continua
     necessità di imparare nuove tecniche possa essere fonte di frustrazione, il ritmo rapido di questo
     cambiamento può essere spiegato, in parte, con la relativa novità della programmazione di
     applicazioni per database distribuite e multi-livello per Windows, assieme a innovazioni tecniche,
     requisiti di protezione e specifiche per la programmazione per il Web, che non sono controllabili
     da parte del team di sviluppo di Visual Studio. Per questi motivi, il capitolo parte dall’inizio, poiché
     più di ogni altro argomento, la programmazione dei database deve essere trattata con argomenti
     passo per passo. Si inizia quindi esaminando la terminologia base dei database.

     Il campo (chiamato anche colonna) è una categoria di informazioni memorizzate in un database.
     Normalmente, i campi di un database relativo ai membri di una facoltà comprendono numeri
     ID, nomi dei membri, indirizzi di posta elettronica, numeri del telefono e nomi dei dipartimenti.
     L’insieme di tutte le informazioni relative a un particolare membro della facoltà, viene chiamato
     record (o meno frequentemente riga). Quando viene creato il database, le informazioni vengono
     immesse in una tabella formata da campi e record.
Capitolo 18   Introduzione ad ADO.NET   443

I record corrispondono alle righe della tabella, mentre i campi corrispondono alle colonne, come
mostrato nel seguente database di facoltà (Faculty2010) di Access 2007.

Un database relazionale può essere formato da più tabelle collegate. Solitamente, la maggior
parte dei database cui è possibile connettersi da Visual Studio è del tipo relazionale e contiene più
tabelle di dati organizzati attorno a un tema particolare.

In ADO.NET sono presenti vari oggetti utilizzati per richiamare e modificare le informazioni
contenute in un database. Per prima cosa viene stabilita una connessione che specifica le
informazioni di connessione necessarie per quel database e crea ciò a cui altri controlli e
componenti si dovranno associare. Fatto ciò, la procedura Configurazione guidata origine dati
crea un dataset, cioè una rappresentazione di una o più tabelle del database che si prevede di
utilizzare nel programma. (Infatti, nel programma vengono manipolate le copie dei dati e non
i dati stessi.) La procedura Configurazione guidata origine dati aggiunge anche un file schema
XML al progetto e associa un table adapter e un data navigator al dataset, in modo da gestire il
richiamo dei dati dal database, la memorizzazione delle modifiche e lo spostamento da un record
al successivo all’interno del dataset. A questo punto è possibile associare le informazioni del
dataset ai controlli di un form utilizzando la finestra Origini dati o le impostazioni della proprietà
DataBindings.
444 Parte IV Programmazione di database e per il Web

     Anche se in questo capitolo verrà illustrato come avviene tale processo in un'applicazione
     Windows Form, in Visual Basic 2010 è possibile anche associare informazioni dataset ad
     applicazioni client WPF (Windows Presentation Foundation) e ad applicazioni Web (ASP.NET o
     Silverlight). Maggiori informazioni su database e ASP.NET verranno illustrate nel capitolo 20.

     Utilizzo di un database Access
     Nelle sezioni seguenti, apprenderai come utilizzare la tecnologia di accesso ai dati ADO.NET di
     Visual Basic 2010. Inizierai con la Configurazione guidata origine dati per stabilire una connessione
     a un database chiamato Faculty2010.accdb, creato in formato Access 2007. (Funziona anche
     in Access 2010, la versione più recente di Access.) Faculty2010.accdb contiene varie tabelle
     di informazioni relative alla vita accademica, utili per amministratori o insegnanti che devono
     organizzare programmi di facoltà o suddividere il carico di lavoro, oltre a informazioni di contatto
     importanti per gli impiegati di un'università o di una scuola.

     Di seguito è possibile apprendere come creare un dataset basato su una tabella di informazioni
     del database Faculty2010, quindi visualizzare tali informazioni in un Windows Form. Al termine,
     sarà possibile sfruttare queste nozioni nei propri progetti di database.

        Suggerimento Anche se gli esempi di questo capitolo utilizzano un database Access, non è
        necessario avere installato questo programma. Tuttavia, in base alla configurazione del sistema,
        possono servire alcuni componenti di connettività di Microsoft per utilizzare i file Access. Se nel
        tentativo di completare gli esercizi sottoriportati visualizzi un messaggio di errore nel quale è indicato
        che Microsoft.Jet.OLEDB non risulta registrato nel computer o che è impossibile riconoscere il formato
        database Access, prima di poter utilizzare ADO.NET dovrai completare la fase 1 illustrata di seguito
        per installare i componenti di connettività necessari, Inoltre, ricorda che Faculty2010.accdb è scritto
        in formato Access 2007. Se desideri aprire il file in Access per utilizzarlo, dovrai avere Access 2007 o
        Access 2010 installato nel sistema.

     Stabilire una connessione utilizzando la procedura Configurazione guidata origine
     dati

      1. Accertati di aver installato Access 2007 o versione successiva. Se non hai Access 2007, scarica
         e installa System Driver: Data Connectivity Components 2007 dal sito Microsoft.com.
      2. Avvia Visual Studio e crea un nuovo progetto Applicazione Windows Form di Visual Basic
         chiamato My ADO Faculty Form.
          Il progetto viene aperto nell’IDE.
      3. Nel menu Dati, fai clic sul comando Aggiungi nuova origine dati.
Capitolo 18   Introduzione ad ADO.NET    445

    La procedura Configurazione guidata origine dati viene avviata nell’ambiente di sviluppo,
    come mostrato nell’immagine che segue.

    Questa procedura guidata è una funzionalità dell’IDE di Visual Studio 2010 che prepara
    automaticamente il tuo programma in Visual Basic a ricevere le informazioni provenienti
    da un database. La procedura chiede il tipo di database cui ci si deve connettere (locale o
    remoto, servizio Web, oggetto dati personalizzato creato personalmente o sito Microsoft
    SharePoint), stabilisce la connessione ai dati e infine crea un dataset o un'entità dati all’interno
    del programma in cui memorizzare tabelle e campi specifici del database. Come risultato, la
    procedura guidata apre la finestra Origini dati e la riempie con una rappresentazione visiva di
    ogni oggetto del database che può essere utilizzato nel programma.
4. Fai clic sull’icona Database (se non è già selezionata) nella procedura Configurazione guidata
   origine dati, quindi su Avanti.
    La procedura visualizza una schermata che chiede di scegliere un modello database per
    l'applicazione e la connessione utilizzata dal programma per le informazioni contenute
    nel database. Si tratta di una nuova schermata di Visual Studio 2010; a questo punto, puoi
    scegliere tra Dataset o Entity Data Model.
    Qui, utilizzerai Dataset, tuttavia anche Entity Data Model potrebbe rivelarsi utile perché
    consente agli sviluppatori di utilizzare nel form dati di oggetti e proprietà specifici di un
    dominio, senza preoccuparsi del formato delle tabelle e delle colonne database sottostanti.
    L'opzione Entity Data Model è presente grazie ad ADO.NET Entity Framework, che
    rappresenta un sottoinsieme della tecnologia database di ADO.NET.
446 Parte IV Programmazione di database e per il Web

      5. Fai clic su Dataset e poi su Avanti.
          La procedura guidata visualizza una schermata che permette di stabilire la connessione con il
          database creando un’istruzione chiamata stringa di connessione. Ogni stringa di connessione
          contiene le informazioni necessarie a Visual Studio per aprire ed estrarre le informazioni
          da un database. Queste comprendono un percorso e un nome di file, ma anche alcuni dati
          potenzialmente riservati quali un nome utente e una password.
          Per questo motivo, la stringa di connessione viene trattata con la massima attenzione nella
          procedura Configurazione guidata origine dati, e si raccomanda di proteggere dagli accessi
          non autorizzati i file sorgenti copiati da un’ubicazione all’altra.
      6. Fai clic sul pulsante Nuova connessione.
          La prima volta che fai clic sul pulsante Nuova connessione, viene visualizzata la finestra di
          dialogo Seleziona origine dati che chiede di selezionare il formato di database che prevedi
          di utilizzare. Se compare la finestra di dialogo Aggiungi connessione invece della finestra di
          dialogo Seleziona origine dati, ciò significa solamente che la copia di Visual Studio è già stata
          configurata per un particolare formato di database.
          In questo caso, fai semplicemente clic sul pulsante Modifica nella finestra di dialogo Aggiungi
          connessione e visualizzerai la stessa finestra apparsa la prima volta che hai avviato la
          procedura guidata, ad eccezione del fatto che la barra del titolo indica Modifica origine dati.
          In questo esempio, comunque, si presuppone che sia stato già selezionato un formato di
          origine dati, quindi la schermata visualizzata sarà uguale all'immagine seguente:

          La finestra di dialogo Modifica/Seleziona origine dati è il luogo in cui puoi selezionare il
          formato di database preferito, quello cioè che Visual Studio deve utilizzare come predefinito.
          In questo capitolo, devi selezionare il formato di Access, ma ricorda che questa impostazione
          può essere modificata in qualsiasi momento. Se necessario, all’interno di un singolo single
          progetto puoi anche stabilire più connessioni, ognuna con un tipo di database differente.
Capitolo 18   Introduzione ad ADO.NET   447

 7. Fai clic su File di database Microsoft Access, quindi su Continua (o su OK).
     Viene visualizzata la finestra di dialogo Aggiungi connessione, mostrata nell’immagine che
     segue:

     Ora puoi procedere a specificare il percorso e le impostazioni di connessione del database,
     affinché Visual Studio possa creare una stringa di connessione valida.
 8. Fai clic su Sfoglia.
     Viene visualizzata la finestra di dialogo Seleziona file di database Microsoft Access, che
     funziona come una normale finestra di dialogo Apri.
 9. Cerca la cartella C:\vb10sbs\Chap18 e seleziona il database Faculty2010, quindi fai clic su Apri.
     Fatto ciò, hai selezionato il database in formato Access 2007 fornito per dimostrare come
     vengono visualizzati i campi e i record di un database all’interno di un programma Visual
     Basic. La finestra di dialogo Aggiungi connessione viene visualizzata nuovamente con il
     percorso specificato. L'accesso a questo file non è stato limitato in alcun modo, pertanto non
     è necessario digitare un nome utente e una password. Tuttavia, se il database richiede un
     nome utente, una password, o entrambi, puoi specificarli adesso nella caselle Nome utente e
     Password. Così facendo, questi valori vengono inclusi nella stringa di connessione.
10. Fai clic sul pulsante Test connessione.
     Visual Studio tenta di aprire il database specificato con la stringa di connessione creata dalla
     procedura guidata. Se il database fa uso di un formato riconosciuto e le informazioni su nome
     utente e password (se presenti) sono corrette, viene visualizzato il messaggio illustrato nella
     pagina seguente.
448 Parte IV Programmazione di database e per il Web

              Nota Se visualizzi un messaggio che indica l'impossibilità di riconoscere il formato database
              significa che probabilmente non è installato Access 2007 o versione successiva In questo caso,
              scarica e installa Office System Driver: Data Connectivity Components 2007 dal sito Microsoft.
              com. (Vedere la fase 1 sopra.)

    11. Fai clic su OK per chiudere la finestra, quindi nuovamente su OK per chiudere la finestra di
        dialogo Aggiungi connessione.
          Visual Studio visualizza nuovamente la procedura Configurazione guidata origine dati.
    12. Fai clic sul segno più (+) accanto alla voce Stringa di connessione nella finestra di dialogo per
        visualizzare la stringa di connessione completata.
          La pagina della procedura guidata appare simile a quella mostrata di seguito:

          La stringa di connessione identifica un provider (noto anche come provider gestito)
          chiamato Microsoft.ACE.OLEDB.12.0, il quale è un componente il cui compito è di gestire la
          connessione a un database per estrarne i dati. I due provider più usati forniti da Visual Studio
          sono Microsoft OLE DB e SQL Server, ma ve ne sono molti altri disponibili, forniti da terze
          parti per i formati di database più diffusi.
Capitolo 18   Introduzione ad ADO.NET   449

13. Fai clic sul pulsante Avanti.
     La procedura guidata visualizza un messaggio di avviso nel quale è indicato che è stato
     selezionato un nuovo database locale che non fa parte del progetto corrente e chiede se
     tale database deve essere copiato nelle cartelle del progetto. Questo messaggio appare
     solo la prima volta che viene stabilita una connessione con un database locale. Pertanto è
     probabile che tale messaggio non compaia nuovamente se l’esercitazione viene ripetuta.
     In un'applicazione commerciale che utilizza un database, è meglio controllare questo
     funzionamento con attenzione. (Per maggiori informazioni sulle opzioni, seleziona il pulsante
     ? o premi F1.)
14. In questo caso, fai clic su No per evitare di creare una copia aggiuntiva del database.
     Poiché questo progetto è solo un programma di esempio e non dovrà essere distribuito,
     questa copia extra non è necessaria.
     La procedura Configurazione guidata origine dati pone quindi la seguente domanda:
     “Salvare la stringa di connessione nel file di configurazione dell’applicazione?” La
     risposta predefinita è affermativa, e il nome della stringa proposto in questo esempio è
     Faculty2010ConnectionString. Solitamente si desidera salvare questa stringa all’interno del file
     di configurazione dell’applicazione, poiché se l’ubicazione del database cambia è possibile
     modificarla in tale file (disponibile in Esplora soluzioni) invece di dover tenere traccia della
     stringa di connessione nel codice del programma e di dover ricompilare l’applicazione stessa.
15. Fai clic su Avanti per salvare la stringa di connessione predefinita.
     A questo punto il programma chiede di selezionare il sottoinsieme di oggetti database che
     desideri utilizzare in questo progetto, come mostrato nella finestra di dialogo che segue:
450 Parte IV Programmazione di database e per il Web

               Nota Visual Studio consente di utilizzare solo una parte di un database, oppure di combinare
               database differenti, una funzionalità utile quando è necessario creare applicazioni incentrate sui
               dati.

          Gli elementi selezionati in questa finestra di dialogo vengono indicati all’interno del progetto
          come oggetti database. Gli oggetti database possono comprendere tabelle di campi e record,
          viste, stored procedure, funzioni e altri elementi univoci del database. Il termine che riunisce
          tutti gli oggetti database selezionati è dataset. In questo progetto, al dataset viene assegnato
          il nome predefinito Faculty2010DataSet che può essere modificato nella casella Nome
          DataSet.

               Suggerimento Nota che il dataset creato ora è solamente una rappresentazione dei dati
               presenti nel database; infatti, se aggiungi, elimini o modifichi i record del database nel dataset,
               in realtà le tabelle del database sottostante vengono modificate solo quando esegui un coman-
               do che memorizza tali variazioni nel database originale. I programmatori di database chiamato
               questo tipo di comportamento origine dati disconnessa, per indicare che è presente un livello di
               separazione tra il database reale e il dataset.

    16. Fai clic sulla freccia accanto al nodo Tabelle per espandere l’elenco delle tabelle presenti nel
        database Faculty2010.accdb.
          In questo caso, la tabella presente è una sola, chiamata Faculty, che utilizzerai nel programma
          di esempio.
     17. Fai clic sulla freccia vicina al nodo Faculty, quindi seleziona le caselle di controllo dei campi
         Last Name eBusiness Phone.
          Questi due campi saranno aggiunti al dataset Faculty2010DataSet. La procedura guidata
          dovrebbe risultare simile alla seguente:
Capitolo 18   Introduzione ad ADO.NET   451

18. Fai clic sul pulsante Fine per completare e chiudere la procedura Configurazione guidata
    origine dati.
     Visual Studio completa l’aggiunta al progetto della connessione al database e la
     configurazione del dataset con gli oggetti database selezionati. (A seconda di come è stata
     utilizzata e configurata l’IDE di Visual Studio, possono essere visualizzate la scheda o la
     finestra Origini dati.)
19. Fai clic sul pulsante Salva tutto nella barra degli strumenti standard per salvare le modifiche.
    Specifica il percorso della cartellaC:\Vb10sbs\Chap18.
20. Se Esplora soluzioni non è completamente visibile, aprilo per visualizzare i file e i componenti
    principali presenti nel progetto ADO Faculty Form.
     Lo schermo sarà simile al seguente:

     Oltre alle normali voci presenti in Esplora soluzione per un progetto, visualizzerai un nuovo
     file chiamato Faculty2010DataSet.xsd. Si tratta di uno schema XML che descrive le tabelle, i
     campi, i tipi di dati e gli altri elementi del dataset creato. La presenza del file dello schema
     significa che al progetto è stato aggiunto un dataset tipizzato. (I dataset tipizzati sono
     associati a un file di schema, cosa che non avviene per i dataset non tipizzati.) I dataset
     tipizzati sono convenienti perché abilitano la funzione Microsoft IntelliSense dell’editor di
     codice di Visual Studio e forniscono informazioni specifiche sui campi e le tabelle utilizzati.
21. Fai clic sul file dello schema Faculty2010DataSet.xsd in Esplora soluzioni, quindi sul pulsante
    Visualizza finestra di progettazione.
     La rappresentazione di tabelle, campi e comandi data adapter relativi al nuovo dataset
     viene visualizzata in uno strumento chiamato finestra Progettazione DataSet. La finestra
     Progettazione DataSet contiene strumenti che permettono di creare componenti che
     consentono al database di comunicare con l’applicazione, ciò che i programmatori di
     database chiamano componenti del layer di accesso ai dati. La finestra Progettazione DataSet
     permette di creare e modificare i table adapter e le loro query, le tabelle e le colonne di
     dati e le relazioni tra dati. La finestra Progettazione DataSet può essere impiegata anche
452 Parte IV Programmazione di database e per il Web

          per rivedere e impostare importanti proprietà relative agli oggetti di un dataset, come ad
          esempio la lunghezza dei campi di un database e i tipi di dati associati ai campi.
    22. Fai clic sul campo Last Name e premi F4 per passare alla finestra Proprietà.
    23. Fai clic sulla proprietà MaxLength. Il form dovrebbe risultare simile all'immagine seguente:

          In questa immagine, la finestra Progettazione DataSet è mostrata con un dataset attivo
          chiamato Faculty2010DataSet, mentre la finestra Proprietà mostra che la proprietà MaxLength
          è impostata in modo da consentire un massimo di 50 caratteri nel campo Last Name.
          Nonostante tale lunghezza possa sembrare sufficiente, è possibile modificare questa
          proprietà (o altre) qualora le impostazioni del database sottostante risultino inadeguate per
          l’applicazione.
     Lasciando temporaneamente da parte la finestra Progettazione DataSet, la prossima sezione
     prosegue con la creazione dell’applicazione database di esempio nella finestra Origini dati.

     La finestra Origini dati
     La finestra Origini dati è una utile funzione dell’IDE di Visual Studio 2010 che permette di
     risparmiare tempo. Il suo scopo è di mostrare una rappresentazione visiva dei dataset configurati
     per essere utilizzati nel progetto, aiutando ad associare tali dataset con i controlli presenti nel
     form.
Capitolo 18   Introduzione ad ADO.NET   453

È utile ricordare che un dataset è solamente una rappresentazione temporanea delle informazioni
di un database, e che ogni dataset contiene solo un sottoinsieme delle tabelle e dei campi
presenti nell’intero database; pertanto, al suo interno vengono visualizzati solamente gli elementi
selezionati nella procedura Configurazione guidata origine dati. Il dataset viene mostrato sotto
forma di una struttura gerarchica nella finestra Origini dati, con un nodo principale per ogni
oggetto selezionato nella procedura guidata. Ogni volta che esegui la procedura guidata per
creare un nuovo dataset, alla finestra Origini dati viene aggiunta una nuova struttura dataset,
offrendo così la possibilità di accedere a un’ampia gamma di origini e visualizzazioni dati da un
unico programma.

Se hai seguito le istruzioni per la selezione dei campi nella tabella Faculty del database
Faculty2010, ora disponi di informazioni interessanti da visualizzare nella finestra Origini dati. Per
prepararti agli esercizi che seguono e vedere la finestra Origini dati, visualizza nuovamente il form
facendo clic sulla scheda Form1.vb [Progettazione], quindi fai clic sul comando Mostra origini dati
nel menu Dati. (In alternativa puoi fare clic sulla scheda Origini dati, se visibile.)

Una volta aperta la finestra Origini dati, espandi la tabella Faculty in modo da poter vedere i due
campi selezionati. La finestra Origini dati dovrebbe avere il seguente aspetto:

Nella parte superiore della finestra sono presenti quattro utili strumenti che consentono di
utilizzare i dataset. Essi consentono, da sinistra a destra, di aggiungere un nuovo dataset al
progetto, modificare il dataset selezionato in Progettazione DataSet, aggiungere o rimuovere
campi dataset e aggiornare il dataset.

Il modo più semplice per visualizzare le informazioni di un dataset in un form e agli utenti consiste
nel trascinare gli oggetti dalla finestra Origini dati alla finestra Progettazione Windows Form.
(Questa è la stessa finestra di progettazione usata nei capitoli precedenti, ma qui viene chiamata
Progettazione Windows Form per distinguerla dalla finestra Progettazione DataSet.)

Il capitolo 19, descrive come visualizzare intere tabelle di dati in un form. Il resto di questo
capitolo mostra invece come trascinare singoli campi di dati nei controlli associati di Progettazione
Windows Form per collegare i campi del database Faculty2010. Provaci.
454 Parte IV Programmazione di database e per il Web

     Utilizzo della finestra Origini dati per creare oggetti database in un form

      1. Nella finestra Origini dati, fai clic sulla freccia vicina al nodo Faculty per visualizzare i campi
         disponibili in Faculty2010DataSet (se non l'hai già fatto).
          La finestra Origini dati appare come nell’immagine precedente. In Visual Studio 2010, puoi
          visualizzare singoli campi o un’intera tabella di dati semplicemente trascinando nel form gli
          oggetti database desiderati.
      2. Fai clic sul campo Last Name che contiene il nome di ciascun docente presente nel database
         Faculty2010. Nella finestra Origini dati, a destra del campo Last Name viene visualizzata una
         freccia. Se la freccia non risulta visibile, assicurati che nella finestra di progettazione sia attiva
         la scheda Form1.vb [Progettazione], quindi fai nuovamente clic su Last Name.
      3. Fai clic sulla freccia Last Name.
          Questa operazione permette di visualizzare un elenco di opzioni relative al modo in cui
          un campo di un database viene mostrato nel form quando lo trascini, come mostrato
          nell’immagine che segue.

          Anche se non ne abbiamo ancora discusso, la maggior parte dei controlli presenti nella
          scheda Controlli comuni della Casella degli strumenti dispone della capacità incorporata di
          visualizzare le informazioni dei database. Nella terminologia di Visual Studio, quando sono
          connessi a campi abilitati all’uso di dati in un dataset, questi controlli vengono chiamati
          controlli associati. L’elenco dei controlli ora visibili è un gruppo di opzioni comuni per la
          visualizzazione di stringhe di informazioni da un database, ma in questo elenco puoi
          aggiungere (o rimuovere) ulteriori controlli facendo clic sul comando Personalizza. In questo
          caso tuttavia, devi usare semplicemente il controllo TextBox, cioè il controllo associato
          predefinito per i dati stringa.
      4. Fai clic su TextBox nell’elenco, quindi trascina il campo Last Name al centro del form in
         Progettazione Windows Form.
          Mentre trascini il campo sul form, un segno più (+) sotto al cursore indica che l’aggiunta
          di questo oggetto database al form è un’operazione valida. Quando rilasci il pulsante del
Capitolo 18   Introduzione ad ADO.NET   455

mouse, Visual Studio crea un oggetto casella di testo abilitato all’uso dei dati e inserisce una
barra di navigazione dall’aspetto professionale nella parte superiore del form. Fatto ciò, il form
dovrebbe apparire simile a quanto mostrato nell’immagine che segue; nota che la finestra
Origini dati può trovarsi in una posizione differente:

In realtà, Visual Studio ha creato due oggetti per questo campo Last Name: un oggetto
etichetta descrittivo contenente il nome del campo, e un oggetto casella di testo associato
che durante l’esecuzione del programma sarà usato per visualizzare il contenuto del campo.
Nella barra dei componenti sotto al form, Visual Studio ha creato anche alcuni oggetti
necessari per gestire le operazioni interne del processo di accesso ai dati. Questi oggetti
comprendono:
    ❏   Faculty2010DataSet, il dataset creato con la procedura Configurazione guidata origine
        dati per rappresentare i campi del database Faculty2010
    ❏   FacultyBindingSource, un componente intermedio che opera da tramite tra la tabella
        Faculty e gli oggetti associati all’interno del form
    ❏   FacutlyTableAdapter e TableAdapterManager, componentI intermedi che spostano i
        dati tra Faculty2010DataSet e le tabelle nel database Faculty2010 sottostante
    ❏   FacultyBindingNavigator, un oggetto che fornisce i servizi di navigazione e le
        proprietà relative alla barra degli strumenti di navigazione e alla tabella Faculty
Ora puoi eseguire il programma per vedere come funzionano gli oggetti impiegati.
456 Parte IV Programmazione di database e per il Web

      5. Fai clic sul pulsante Avvia debug nella barra degli strumenti standard.
          Il programma ADO Faculty Form viene eseguito nell’IDE. L’oggetto casella di testo viene
          caricato con il primo record Last Name presente nel database (Abercrombie), quindi nella
          parte superiore del form appare una barra degli strumenti di navigazione con numerosi
          pulsanti e controlli, come mostrato nell’immagine che segue:

          Questa barra degli strumenti di navigazione costituisce una funzionalità utile degli strumenti
          di programmazione database di Visual Studio 2010. Da sinistra a destra, essa contiene i
          pulsanti Move First e Move Previous, un indicatore di posizione corrente e i pulsanti Move
          Next, Move Last, Add New, Delete e Save Data. I pulsanti della barra possono essere
          modificati o eliminati mediante le proprietà Items dell’oggetto binding navigator nella
          finestra Proprietà, nella quale è visibile uno strumento chiamato Editor dell’insieme Items. Se
          necessario, è anche possibile abilitare o disabilitare singoli pulsanti della barra.
      6. Fai clic sul pulsante Move next per passare al nome del secondo docente nel dataset.
          Viene visualizzato il record Pais.
      7. Continua a scorrere i record del dataset uno alla volta. Mentre ti sposti nell’elenco di nomi,
         nota che l’indicatore di posizione tiene traccia di dove ti trovi.
      8. Fai clic sui pulsanti Move First e Move Last per passare rispettivamente al primo e all’ultimo
         record del dataset.
      9. Elimina l’ultimo record del dataset (Skinner) facendo clic sul pulsante Delete.
          Il record viene eliminato dal dataset e l’indicatore di posizione mostra che ora rimangono 19
          record. (Lan è diventato l’ultimo e corrente record.) Lo schermo sarà simile al seguente:
Capitolo 18   Introduzione ad ADO.NET   457

     Come già discusso in precedenza, il dataset rappresenta solo un sottoinsieme delle tabelle del
     database Faculty2010 utilizzato in questo progetto, e il dataset è un’immagine disconnessa
     di tale database, non il database stesso. Di conseguenza, il record appena eliminato è stato
     rimosso solamente dal dataset caricato in memoria durante l’esecuzione del programma.
     Tuttavia, per verificare che il programma operi davvero su dati disconnessi e senza eseguire
     alcuna modifica nel database originale, puoi interromperlo e riavviarlo ora.
10. Fai clic sul pulsante Chiudi nel form per terminare il programma.
     Il programma viene terminato e il controllo torna all’IDE.
11. Fai clic su Avvia debug per eseguire nuovamente il programma.
     Una volta avviato il programma e caricato il form, la barra degli strumenti di navigazione
     mostra che il dataset contiene 20 record, come nell’originale. In altre parole, tutto funziona
     come previsto.
12. Fai clic sul pulsante Move Last per visualizzare l’ultimo record del dataset.
     Come puoi notare, il record Skinner è ancora presente. Il nome dell’ultimo docente era stato
     eliminato solo dalla memoria e ora è ricomparso perché il database sottostante lo contiene
     ancora.
13. Fai clic di nuovo sul pulsante Chiudi per terminare il programma.
 Congratulazioni! Senza scrivere nemmeno una riga di codice, hai creato un’applicazione
 funzionante che visualizza informazioni specifiche richiamate da un database. L’impostazione
 del dataset ha richiesto numerose operazioni, ma ora esso è pronto per essere impiegato nel
 programma in molti altri utili modi.

 Pur avendo selezionato solamente una tabella e due campi del database Faculty2010 per
 ridurre gli elementi visualizzati e concentrare l’attenzione, durante la creazione di dataset con
 la procedura Configurazione guidata origine dati può essere necessario selezionare un numero
 maggiore di oggetti database.
458 Parte IV Programmazione di database e per il Web

     Come puoi vedere, non è necessario creare oggetti associati per ogni elemento dataset di un
     form, ma è possibile decidere quali record del database utilizzare e visualizzare.

Utilizzo di controlli associati per visualizzare le
informazioni di un database
     Come già discusso in precedenza, Visual Studio può utilizzare numerosi controlli della Casella
     degli strumenti per visualizzare le informazioni dei database. Questi controlli possono essere
     associati ai dataset trascinando i campi dalla finestra Origini dati (metodo più semplice), oppure è
     possibile creare i controlli separatamente nei form per poi associarli agli oggetti dataset in seguito.
     Questa seconda opzione è una funzione importante, poiché occasionalmente può capitare di
     dover aggiungere le origini dati a un progetto solo dopo aver creato l’interfaccia utente. La
     procedura dimostrata in questa sezione serve a gestire questo tipo di situazione, fornendo inoltre
     un ulteriore esempio di utilizzo di oggetti dati associati ai controlli di un’applicazione Visual Basic.
     Di seguito viene illustrato come creare un oggetto casella di testo mascherata, configurare tale
     oggetto in modo da formattare le informazioni del database nel modo desiderato, e quindi
     associare all’oggetto il campo Business Phone in Faculty2010DataSet.

     Associazione di un controllo casella di testo mascherata a un oggetto dataset

      1. Visualizza il form in Progettazione Windows Form, quindi apri la Casella degli strumenti, se
         non è ancora visibile.
      2. Faci clic sul controllo MaskedTextBox nella scheda Controlli comuni, quindi crea l'oggetto nel
         form sotto l’etichetta e la casella di testo Last Name.
          Come già discusso nel capitolo 6, il controllo MaskedTextBox è simile al controllo TextBox, ma
          dispone di maggiori capacità di gestire o limitare le informazioni immesse nel programma
          dall’utente. Il formato di immissione del controllo MaskedTextBox viene definito mediante la
          proprietà Mask. In questa esercitazione, la proprietà Mask viene impiegata per preparare la
          casella di testo a visualizzare numeri di telefono formattati provenienti dal campo Business
          Phone. (Per impostazione predefinita, nel database Faculty2010 i numeri di telefono sono
          memorizzati senza spazi, parentesi o trattini usati nei formati telefonici, ma si desidera che nel
          programma sia usato questo tipo di formattazione.)
      3. Fai clic sullo smart tag nell’angolo superiore destro dell’oggetto casella di testo, quindi fai clic
         sul comando Imposta maschera.
          Visual Studio visualizza la finestra di dialogo Maschera input che elenca alcuni tipi di maschere
          numeriche predefinite. Oltre che per le informazioni immesse dagli utenti, Visual Studio
          utilizza queste maschere per formattare i dati di output nell’oggetto casella di testo.
      4. Fai clic sulla maschera di input Numero di telefono, quindi su OK.
          L’oggetto ora appare con le indicazioni per l’immissione associate alle impostazioni di paese e
          lingua memorizzate in Windows. (Queste impostazioni possono variare a seconda del paese
          di appartenenza.)
Capitolo 18   Introduzione ad ADO.NET     459

5. Aggiungi un oggetto etichetta accanto al nuovo oggetto e impostane la proprietà Text su
   “Phone:” (inclusi i due punti).
    La prima etichetta descrittiva è stata aggiunta automaticamente dalla finestra Origini dati,
    mentre questa deve essere aggiunta manualmente.
6. Imposta lo spazio tra etichette e caselle di testo in modo da allinearle in modo uniforme. Al
   termine, il form dovrebbe avere un aspetto simile a questo:

    Ora puoi procedere ad associare il campo Business Phone di Faculty2010DataSet al nuovo
    oggetto casella di testo. La procedura è semplice; è sufficiente trascinare il campo Business
    Phone dalla finestra Origini dati nell'oggetto che si desidera associare ai dati, in questo caso
    MaskedTextBox1.
7. Visualizza la finestra Origini dati se non è visibile, quindi trascina il campo Business Phone
   nell’oggetto MaskedTextBox1.
    Quando trascini un oggetto dataset su un oggetto già presente nel form (chiamato anche
    oggetto di destinazione), non viene creato alcun nuovo oggetto associato. Al contrario, le
    proprietà DataBindings dell’oggetto di destinazione vengono impostate in modo da farle
    corrispondere all’oggetto dataset trascinato dalla finestra Origini dati.
    Una volta completata l’operazione di trascinamento, l’oggetto casella di testo risulta associata
    al campo Business Phone, e la proprietà Text dell’oggetto casella di testo contiene una piccola
    icona di database nella finestra Proprietà, per indicare che l’oggetto è associato a un dataset.
8. Verifica che l’oggetto MaskedTextBox1 sia selezionato nel form, quindi premi il tasto F4 per
   passare alla finestra Proprietà.
9. Cerca la categoria DataBindings, quindi fai clic sulla freccia per espanderla.
    Visual Studio mostra la proprietà normalmente associata all’accesso ai dati in un oggetto
    casella di testo mascherata. La finestra Proprietà dovrebbe essere simile a quella qui mostrata:
460 Parte IV Programmazione di database e per il Web

          Nota la proprietà Text, che in seguito all’operazione di trascinamento risulta impostata su
          FacultyBindingSource – Business Phone”. (Come puoi vedere, qui non è presente la piccola
          icona di database, che appare solamente nella proprietà Text nella parte inferiore dell’elenco
          alfabetico delle proprietà.) Inoltre, facendo clic sulla freccia nella proprietà Text, puoi vedere
          la rappresentazione dell’oggetto casella di testo. (Se necessario, questa utile indicazione visiva
          permette di modificare rapidamente l’origine dati cui è associato il controllo.)
    10. Fai clic sul form per chiudere tutti i riquadri aperti della finestra Proprietà.
    11. Fai clic sul pulsante Avvia debug per eseguire il programma.
          Visual Studio esegue il programma nell’IDE. Dopo qualche istante, i due campi del database
          vengono caricati negli oggetti, come mostrato nell’immagine che segue.

          È importante notare che l’oggetto casella di testo mascherata formatta correttamente le
          informazioni relative al numero di telefono in base alle impostazioni usate da Windows.
Capitolo 18   Introduzione ad ADO.NET   461

  12. Fai clic alcune volte sul pulsante Sposta avanti.
       È stata dimostrata un’altra importante funzione: I due campi del dataset vengono
       aggiornati insieme, e i nomi dei docenti vengono visualizzati con i rispettivi numeri telefonici
       memorizzati nel database Faculty2010. Questa sincronizzazione viene gestita dall’oggetto
       FacultyBindingNavigator, il quale tiene traccia del record corrente per ogni oggetto associato
       presente nel form.
  13. Fai clic sul pulsante Chiudi per interrompere il programma, quindi sul pulsante Salva tutto per
      salvare le modifiche.
   Hai così appreso come visualizzare più campi di un database in un form, utilizzare la barra degli
   strumenti di navigazione per muoverti in un dataset e formattare le informazioni del database
   mediante una maschera. Prima di lasciare questo capitolo per passare all’esame del controllo
   DataGridView discusso nel capitolo 19, dedica qualche istante a vedere come personalizzare
   ulteriormente il dataset utilizzando le istruzioni SQL.

Procedura aggiuntiva: istruzioni SQL, LINQ e filtro dei
dati
   La procedura Configurazione guidata origine dati è stata impiegata per estrarre dal database
   Faculty2010 solo le tabelle e i campi desiderati mediante la creazione di un dataset personalizzato
   chiamato Faculty2010DataSet. Tuttavia, oltre a questo filtro i dati visualizzati dai controlli associati
   possono essere organizzati e personalizzati ulteriormente utilizzando istruzioni SQL e Generatore
   di query di Visual Studio. Questa sezione introduce questi strumenti.

   Per gli utenti di Visual Basic che hanno familiarità con Access o SQL Server, il filtro dei dati
   mediante istruzioni SQL non rappresenta una novità. Gli altri lettori devono invece considerare
   le istruzioni SQL come comandi che permettono di estrarre, o filtrare, le informazioni da
   una o più tabelle strutturate di un database. Il motivo dell’applicazione di questi filtri è molto
   semplice: Così come gli utenti Web si trovano a dover affrontare ripetutamente enormi quantità
   di dati provenienti da Internet, utilizzando di conseguenza parole chiave di ricerca mirate nei
   propri browser per localizzare esattamente ciò che desiderano, i programmatori di database
   devono spesso gestire tabelle contenenti decine di migliaia di record che devono essere filtrati
   e organizzati per poter risultare utili per una particolare attività. L’istruzione SQL SELECT è un
   meccanismo molto noto che permette di organizzare le informazioni contenute in un database.
   Concatenando un gruppo di queste istruzioni, i programmatori possono creare direttive di ricerca
   complesse, o query, che consentono di estrarre da un database solo i dati desiderati.

   In seguito alla larga diffusione delle istruzioni SQL, le versioni precedenti di Visual Studio e delle
   relative IDE sono state dotate del supporto per l’impiego delle istruzioni SQL. Visual Studio 2008
   e 2010 dispongono di una nuova tecnologia chiamata LINQ (Language-Integrated Query) che
   permette ai programmatori esperti di creare query in stile SQL nei database direttamente nel
   codice Visual Basic. Nonostante LINQ rappresenti la tecnologia database principale in Visual
   Studio, non è semplice da utilizzare se non si conosce in modo abbastanza approfondito l’uso
462 Parte IV Programmazione di database e per il Web

     delle istruzioni SQL. L’esercitazione che segue illustra alcune di queste nozioni base utilizzando
     una funzionalità di Visual Studio chiamata Generatore di query. Questo strumento aiuta il
     programmatore a creare query di database ed è particolarmente utile per chi ha poca esperienza
     pregressa nell’uso del codice SQL. Nell’esempio seguente, Generatore di query viene impiegato
     per organizzare ulteriormente il dataset Faculty2010DataSet ordinandolo alfabeticamente.

     Creazione di istruzioni SQL con Generatore di query

      1. Nel form creato precedentemente, fai clic sull’oggetto Last_NameTextBox (il primo oggetto
         associato creato per visualizzare i nomi dei docenti nel database Faculty2010).
      2. Fai clic su Aggiungi query nel menu Dati.
          Il comando Aggiungi query è disponibile quando nella finestra Progettazione è selezionato
          un oggetto associato, ad esempio Last_NameTextBox. Viene visualizzata la finestra di dialogo
          Generatore di criteri per la ricerca, come mostrato nell’immagine che segue:

          Questa finestra di dialogo permette di organizzare e visualizzare le proprie query create da
          Generatore di query e formate da istruzioni SQL. La tabella predefinita che viene organizzata
          mediante la query (Faculty2010DataSet.Faculty) può essere selezionata nella casella Seleziona
          tabella origine dati nella parte superiore della finestra di dialogo. Il nome della tabella indica
          anche il formato gerarchico dell’oggetto, in questo caso “la tabella Faculty all’interno del
          dataset Faculty2010DataSet”.
Capitolo 18   Introduzione ad ADO.NET   463

    Eventuali altre tabelle tra cui scegliere sarebbero elencate nella casella di riepilogo che appare
    facendo clic sulla freccia nella casella Seleziona tabella origine dati.
3. Digita SortLastNames nella casella Nuovo nome query.
    Questa casella di testo assegna un nome alla query e forma la base dei pulsanti della
    barra degli strumenti aggiunta al form. (Per facilitare l’accesso, la disposizione predefinita
    prevede che le nuove query siano assegnate ai pulsanti della barra degli strumenti all’interno
    dell’applicazione in fase di sviluppo.)
4. Fai clic sul pulsante Generatore di query nella finestra di dialogo per aprire lo strumento
   Generatore di query.
    Questo strumento consente di creare istruzioni SQL digitandole direttamente in una grande
    casella di testo, oppure facendo clic su caselle di riepilogo e altri strumenti.
5. Nella riga Last Name che rappresenta il campo Last Name del dataset, fai clic sulla cella sotto
   all’intestazione Tipo di ordinamento, quindi sulla freccia per visualizzare la casella di riepilogo
   Tipo di ordinamento.
    Lo schermo sarà simile al seguente:

6. Nella casella Tipo ordinamento, fai clic su Crescente.
    I record saranno ordinati nel campo Last Name in modo ascendente.
464 Parte IV Programmazione di database e per il Web

      7. Fai clic sulla casella di testo dell’istruzione SQL sotto il riquadro con la griglia per aggiornare la
         finestra del Generatore di query.
          Alla casella contenente le istruzioni SQL viene aggiunta una nuova clausola (ORDER BY [Last
          Name]), e lo schermo appare simile a questo:

          L'efficacia dello strumento Generatore sta nella capacità di creare istruzioni SQL in modo
          automatico.
      8. Fai clic su OK per completare la query.
          Visual Studio chiude il Generatore di query e visualizza la nuova query nella finestra di dialogo
          Generatore di criteri per la ricerca. Il nome della query (SortLastNames) appare nell’elenco
          assieme alle istruzioni SQL che danno origine all’ordinamento.
      9. Fai clic su OK per chiudere la finestra di dialogo Generatore di criteri per la ricerca e imposta
         l’oggetto Last_NameTextBox in modo da visualizzare i nomi in ordine alfabetico ascendente.
          Il processo ha creato anche un oggetto SortLastNamesToolStrip nella barra dei componenti
          sotto al form. A questo punto, la finestra Progettazione e la barra dei componenti hanno
          l’aspetto mostrato nell’immagine che segue.
Capitolo 18   Introduzione ad ADO.NET   465

10. Fai clic sul pulsante Avvia debug per eseguire il programma.
     Visual Studio carica il form e visualizza il primo record dei due oggetti dataset.
11. Fai clic sul pulsante SortLastNames nella nuova barra degli strumenti.
     La nuova istruzione SQL ordina i record Last Name del dataset e li visualizza nella nuova
     sequenza. Il primo record è ancora Abercrombie, ma adesso il secondo e il terzo nome sono
     rispettivamente Atlas e Bankov.
12. Fai clic sul pulsante Move Last nella barra degli strumenti.
     Verrà visualizzato il nome Zimprich, come illustrato nella figura seguente.
466 Parte IV Programmazione di database e per il Web

          Poiché i nomi sono elencati alfabeticamente da A a Z, Zimprich è diventato l'ultimo nome
          della lista.
    13. Scorri il resto dell’elenco dei record e verifica che i dati siano visualizzati in ordine alfabetico
        ascendente.
    14. Fai clic sul pulsante Chiudi per terminare il programma.
     Nell’ultima sezione hai visto come creare query personalizzate mediante istruzioni SQL e
     Generatore di query. La programmazione dei database è un argomento complesso, ma hai
     già appreso molte nozioni utili per creare applicazioni Visual Basic incentrate sui dati, insiemi di
     dati altamente personalizzati che possono aiutare l’utente a sfruttare le informazioni. L'analisi
     dell'accesso ai dati viene ulteriormente approfondita nel capitolo 19. Nel capitolo 20, il progetto
     finale visualizzerà i record database in un sito Web.

Riferimenti rapidi del capitolo 18
      Obiettivo                     Azione
      Come stabilire una            Fai clic sul comando Aggiungi nuova origine dati nel menu Dati, quindi utiliz-
      connessione con un            za la procedura Configurazione guidata origine dati per localizzare il databa-
      database                      se cui desideri fornire accesso creando una stringa di connessione.
      Creazione di un dataset       Con Configurazione guidata origine dati, specifica il nome del dataset nella
                                    casella Nome DataSet, espandi il nodo Tabelle nella visualizzazione della
                                    struttura del database mostrata e specifica le tabelle e i campi che desideri
                                    includere nel dataset. (Nota che il dataset non deve necessariamente
                                    includere tutte le tabelle e i campi del database.)
      Creazione di oggetti          Dopo la procedura Configurazione guidata origine dati, apri la finestra
      associati in grado di         Origini dati e trascina le tabelle, i campi, o entrambi nel Windows Form. Per
      visualizzare i dati di un     controllare il tipo di associazione creata per la tabella o il campo, fai clic sulla
      dataset in un Windows         freccia relativa e seleziona un controllo nella casella di riepilogo prima di
      Form                          procedere al trascinamento. Se hai posizionato un controllo nel form prima
                                    di aggiungere le origini dati al progetto, puoi trascinare l’oggetto database
                                    da associare dalla finestra Origini dati sul controllo desiderato all’interno
                                    del form. In alternativa, imposta la proprietà DataBinding dell’oggetto
                                    a un campo valido (colonna) del dataset. (Nota che una delle proprietà
                                    DataBinding più utili è Text.)
      Aggiunta di controlli di      Quando un oggetto database valido viene trascinato dalla finestra
      navigazione a un              Origini dati in un Windows Form nella finestra di progettazione, viene
      Windows Form                  aggiunta automaticamente una barra degli strumenti di navigazione. Per
                                    personalizzare i pulsanti presenti in questa barra degli strumenti, fai clic con
                                    il pulsante destro del mouse sull’oggetto BindingNavigator nella barra dei
                                    componenti, quindi fai clic su Modifica elementi.
      Formattazione delle           Utilizza un controllo MaskedTextBox per formattare il contenuto di stringhe
      informazioni di un            di dati del dataset. Il controllo MaskedTextBox dispone di molte maschere di
      database in un form           input e della capacità di creare formati stringa personalizzati.
      Come filtrare o ordinare le   Utilizza le istruzioni SQL per creare query personalizzate nel Generatore di
      informazioni di un            query di Visual Studio, quindi aggiungi queste query a una barra degli stru-
      database memorizzate in       menti del Windows Form. Una volta appreso l’uso del Generatore di query, è
      un dataset                    possibile procedere alla sperimentazione dell’uso di LINQ.
Capitolo 19
Presentazione dei dati mediante il
controllo DataGridView
   Al termine di questo capitolo sarai in grado di:
    ■    Creare un oggetto visualizzazione griglia dati in un Windows Form e utilizzare l’oggetto per
         visualizzare una tabella di un database.
    ■    Ordinare le tabelle di un database per colonna.
    ■    Modificare il formato e il colore delle celle in un oggetto visualizzazione griglia dati.
    ■    Aggiungere e rimuovere colonne e intestazioni di colonna.
    ■    Visualizzare più oggetti visualizzazione griglia dati in un form.
    ■    Abilitare le modifiche nelle celle di una griglia e salvare le modifiche nel database sottostante.
   Nel capitolo 18, ho illustrato come utilizzare le tecniche di programmazione dei database di Microsoft
   ADO.NET per stabilire una connessione con un database di Microsoft Access e visualizzare le
   colonne di tale database in un Windows Form. Inoltre, ho mostrato come aggiungere una barra di
   navigazione al form e come organizzare le informazioni del database mediante istruzioni SQL e lo
   strumento Generatore di query.

   In questo capitolo, apprenderai come sfruttare le funzionalità di programmazione dei database di
   Microsoft Visual Studio 2010 utilizzando classi, oggetti e strumenti di progettazione in ADO.NET.
   In particolare, dimostrerò come usare il controllo DataGridView per presentare all’utente un’intera
   tabella di informazioni di un database.

Utilizzo di DataGridView per visualizzare i record di un
database
   Il controllo DataGridView presenta le informazioni stabilendo una griglia di righe e colonne in un
   form, in modo da visualizzare i dati come avviene in programmi quali Microsoft Excel o Access. Il
   controllo DataGridView può essere impiegato per visualizzare qualsiasi tipo di dati tabellari, ad
   esempio testo, numeri, date o contenuti di un array. In termini di programmazione, DataGridView
   è utile anche perché data adapter e gli oggetti dataset sottostanti associati con DataGridView
   gestiscono automaticamente tutta la funzionalità di accesso ai dati.

   Questo capitolo si concentra sulla capacità del controllo DataGridView di visualizzare le colonne
   (campi) e le righe (record) del database Faculty2010.accdb, un file di informazioni strutturate sui
   dipendenti già utilizzato nel capitolo 18. Si inizia compilando un semplice oggetto visualizzazione
   griglia dati con record di testo provenienti dal database Access 2007, per poi impostare alcune
   opzioni di formattazione. Fatto ciò, si passa a ordinare i record negli oggetti griglia, per apprendere

                                                                                                         467
Puoi anche leggere