Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Database e accesso ai dati con VB.NET e Windows Forms

Database e accesso ai dati: come stabilire una connessione al database, recuperare dati e manipolarli attraverso una UI WinForms
Database e accesso ai dati: come stabilire una connessione al database, recuperare dati e manipolarli attraverso una UI WinForms
Link copiato negli appunti

Le applicazioni Desktop sviluppate con VB.NET e con il framework di Windows Forms offrono una piattaforma robusta e intuitiva per la creazione di interfacce utente interattive. Integrare un database all'interno di queste applicazioni consente di organizzare i dati in modo efficiente, garantendo una gestione affidabile delle informazioni. L'integrazione di un database nelle applicazioni WinForms amplifica le loro capacità, consentendo di archiviare, recuperare, aggiornare ed eliminare dati. Questa lezione si concentrerà sull'utilizzo del database SQL Server, ma i concetti possono essere estesi a diverse piattaforme di database. Attraverso una serie di passaggi, impareremo a stabilire una connessione al database, recuperare dati da esso e manipolare le informazioni attraverso un'interfaccia utente WinForms. Vedremo come implementare operazioni di base come l'inserimento, l'aggiornamento e l'eliminazione dei dati, fornendo una panoramica completa su come gestire il flusso delle informazioni tra l'applicazione e il database.

Creazione del database

Come prima operazione dobbiamo creare un database nel nostro SQL Server. In questo paragrafo non andremo troppo nel dettaglio su come creare un database in SQL Server ma ci occuperemo solo di dare le linee guida inerenti la nomenclatura che andremo ad adoperare in seguito. Per avere maggiori informazioni su come utilizzare SQL Server possiamo utilizzare questa guida. Apriamo SQL Server Management Studio (SSMS) e creiamo un nuovo database. Possiamo dare il nome che preferiamo al nostro archivio, in questa lezione possiamo chiamarlo "Negozio". Creiamo una tabella di esempio, chiamata "Clienti", con alcune colonne (ad esempio, "ID", "Nome" e "Cognome").

La libreria System.Data.SqlClient

Andiamo su "FIle -> Nuovo -> Progetto" e tra i modelli proposti scegliamo "App Windows Forms (.NET Framework)" in VB. Riempiamo i vari campi che ci propone Visual Studio, come "Nome del Progetto", il path etc. etc. Adesso ci troveremo davanti a un form completamente vuoto. Facendo doppio click sul form entreremo nell'editor di programmazione via codice. Per prima cosa dobbiamo importare la libreria che ci consente di utilizzare lo spazio dei nomi del framework .NET, specifico per la gestione delle connessioni e delle operazioni con i database SQL Server. Quindi, al di fuori della classe del form, scriviamo:

Imports System.Data.SqlClient

La dichiarazione Imports System.Data.SqlClient ci fornisce le classi e gli oggetti necessari per connetterci a un database SQL Server, eseguire query SQL, gestire parametri e manipolare i dati. Un breve riepilogo delle principali classi fornite da System.Data.SqlClient è il seguente:

  • SqlConnection: rappresenta una connessione aperta a un database SQL Server. Viene utilizzata per stabilire una connessione con il database.
  • SqlCommand: rappresenta un'istruzione SQL da eseguire su un database. Viene utilizzata per eseguire query SQL e operazioni sul database.
  • SqlDataAdapter: rappresenta un set di comandi e una connessione per recuperare dati da un database e popolare un oggetto DataSet.
  • SqlDataReader: fornisce un modo di leggere un flusso di dati in avanti da un database. Viene utilizzato per recuperare dati quando si eseguono query che restituiscono un set di risultati.
  • SqlParameter: rappresenta un parametro per un oggetto SqlCommand. Viene utilizzato per passare parametri alle query SQL, migliorando la sicurezza e l'efficienza.

Creare la connessione al database

Per potersi connettere a un database tramite Visual Studio è possibile intervenire o tramite codice o tramite la sua interfaccia grafica. L'aggiunta di un collegamento al database attraverso l'interfaccia grafica è solo un modo comodo per gestire visivamente la connessione e per generare automaticamente alcuni dei codici associati. In genere, le motivazioni per cui si predilige l'interfaccia grafica per il collegamento al database e non il codice sono le seguenti:

  • Rapidità e comodità: l'utilizzo dell'interfaccia grafica può essere più veloce e comodo, soprattutto se si desidera esplorare rapidamente la struttura del database, selezionare tabelle o scrivere query di base senza dover scrivere manualmente tutto il codice.
  • Generazione automatica di codice: l'interfaccia grafica può generare automaticamente il codice sottostante per stabilire la connessione al database. Questo è utile soprattutto per principianti.
  • Testing e Debugging: l'interfaccia grafica può fornire strumenti visivi per testare e debuggare le query e le operazioni sul database.

La scelta tra l'utilizzo dell'interfaccia grafica e la scrittura manuale del codice dipende dalle preferenze personali, dalla complessità del progetto e dalle esigenze specifiche di sviluppo. Entrambi gli approcci sono comunque validi. Nel nostro progetto VB.NET, vediamo come collegarci al nostro database per mezzo dell'interfaccia grafica e per far questo dobbiamo cliccare sul menù a sinistra di Visual Studio "Origini Dati" e sull'iconcina in alto a sinistra o su "Aggiungi nuova origine dati", come mostrato nella figura in basso:

Una volta fatto questo selezioniamo "Database" e successivamente "DataSet". Come mostrato in figura:

In VB.NET, un DataSet è un oggetto che rappresenta una cache locale dei dati. È parte del namespace System.Data e fornisce una rappresentazione in memoria dei dati provenienti da una fonte dati, come appunto un database. Un DataSet può contenere uno o più oggetti DataTable, che rappresentano tabelle di dati, insieme alle relazioni tra di esse. Ecco alcune caratteristiche principali di un DataSet:

  • Rappresentazione in Memoria: un DataSet conserva i dati in memoria, il che significa che può essere manipolato senza dover accedere direttamente al database. Ciò permette operazioni più veloci e riduce la necessità di costanti connessioni al database.
  • Supporto per più Tabelle: un DataSet può contenere più oggetti DataTable, consentendo di rappresentare dati di una struttura complessa con relazioni tra le tabelle.
  • Controlli dell'Interfaccia Utente: è possibile utilizzare un DataSet per collegare facilmente i dati a controlli dell'interfaccia utente, come DataGridView o ComboBox, semplificando la visualizzazione e la manipolazione dei dati nell'applicazione.
  • Serialization e Offline Data: un DataSet può essere facilmente serializzato e deserializzato, consentendo il trasferimento dei dati tra applicazioni o permettendo l'uso di dati offline.
  • Modifiche dei Dati Locali: un DataSet può essere utilizzato per apportare modifiche ai dati localmente, e queste modifiche possono essere applicate al database sorgente in un secondo momento.

A questo punto ci troveremo dinnanzi a una schermata di questo tipo:

Dobbiamo cliccare su "Nuova Connessione" e selezionare il database che preferiamo. Nel nostro caso "Microsoft SQL Server". A questo punto ci verranno richieste le credenziali per connetterci al nostro server, come mostrato in figura:

Dopo aver immesso le credenziali avremo configurato correttamente il collegamento al nostro database e saremo pronti per poter interagire con esso.

Conclusioni

In questa lezione sono stati presentati i concetti fondamentali della libreria System.Data.SqlClient evidenziando l'importanza di classi come SqlConnection, SqlCommand, SqlDataAdapter, SqlDataReader e SqlParameter, per gestire le operazioni con il database. Nella parte pratica, abbiamo visto come instaurare una connessione al database attraverso Visual Studio, fornendo indicazioni sull'approccio tramite l'utilizzo dell'interfaccia grafica. L'interfaccia grafica è uno strumento conveniente per gestire visivamente la connessione e generare automaticamente parte del codice associato. Nella lezione successiva andremo nel dettaglio su come interagire con le tabelle e i dati del nostro database.

Ti consigliamo anche