Integrare un database in un’applicazione Visual Basic Windows Forms

Introduzione

I Database sono degli archivi di dati strutturati e organizzati che memorizzano grandi quantità di informazioni, e permettono agli utenti di differenti applicazione di estrarre informazioni, manipolarle e gestire in modo semplice e intuitivo attraverso delle applicazioni DBMS con front end come ad esempio il software Microsoft Access, o mediante il linguaggio SQL mediante l’uso di DBMS da riga di comando o con delle interfacce Web Mysql, SQL Server, Oracle DBMS, ecc.

Obiettivo

In modo pratico e veloce vediamo come integrare un database access in un’applicazione Windows Forms, e di visualizzare i dati un Form personalizzato.
Avviamo l’ambiente Visual Studio, creiamo una nuova soluzione Windows Forms .NET e il software prepara la soluzione che è composta dal nostro Form. Inseriamo nel nostro Form quattro etichette, quattro caselle di testo e quattro pulsanti come mostrato in figura.

La tabella sotto ripotata indica le proprietà da cambiare in fase di progettazione della GUI.

 Tipo ControlloProprietàValore
Caselle di testo (TextBox)NameTxtcognome, txtnome, txtage, txtcodiceclasse
Bottoni (Button)NamecmdInserisci, cmdAvanti, cmdIndietro, cmdFine
BottoniTextInserisci, Avanti, Indietro, Fine

L’applicazione apre la connessione ad un Database, seleziona la tabella “Studenti”, e visualizza in automatico i dati estratti mediante una query dal Database.
I pulsanti Avanti e Indietro sposteranno i dati sul record successivo e precedente muovendo il DataTable ovvero l’oggetto che contiene i dati estratti mediante il Dataset.
Il pulsante “Fine” termina l’applicazione, il pulsante “Inserisci” (sarà presentato nel prossimo articolo) inserisci i dati nella tabella del Database.
Per realizzare la connessione al Database abbiamo inserito il file Access nella cartella principale del progetto onde evitare per ora di specificare il Path della sorgente dati.
Per accedere al Database Access usiamo la libreria Microsoft.ACE.OleDB.12.0 che deve installata attraverso il gestore dei pacchetti Nuget nella soluzione.
Per installare il pacchetto andiamo nella voce di Menù Visualizza -> Esplora Soluzione, e selezioniamo la nostra soluzione come mostrato in figura:


Esplora soluzione

Selezioniamo il nome del progetto “AppDB2” e dalla voce di Menù Progetto – Installa Pacchetto Nuget, si apre una finestra di dialogo che permette di installare i pacchetti da Internet sul repository ufficiale e installiamo il Provider “Microsoft.ACE.OlEDB.12.0” attendiamo e l’installazione integra il pacchetto alla nostra soluzione. E’ mostrato in figura la finestra di dialogo.

Codice dell’Applicazione Visual Basic

Fatte queste operazioni preliminari il codice da integrare è per l’evento Form_Load:

Public Class Form1
    Dim stConn As String = "Provider = Microsoft.ACE.OLEDB.12.0;Data Source=scuola.accdb"
    Dim conn As New OleDbConnection(stConn)
    Dim k As Integer = 0
    Dim dataset As New DataSet

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

        Try
            conn.Open()

            MessageBox.Show("Connessione al Database Risucita -)", "Avviso")
            Dim query As String = "SELECT * FROM Studente;"
            Dim ris As New OleDbDataAdapter(query, conn)
            ris.Fill(dataset, "Studente")
            Dim dt As DataTable = New DataTable("Studente")
            'Dim righe As DataRow
            'Dim colonne As DataColumn = New DataColumn

            txtmatricola.Text = dataset.Tables("Studente").Rows(0)("num_matricola").ToString
            txtcognome.Text = dataset.Tables("Studente").Rows(0)("cognome").ToString
            txtnome.Text = dataset.Tables("Studente").Rows(0)("nome").ToString
            txtcodiceclasse.Text = dataset.Tables("Studente").Rows(0)("cod_classe").ToString
        Catch ex As Exception
            MessageBox.Show("Errore nella connessioen ad Database:" & ex.Message, "Errore Attenzione")
            End
        Finally
            If (conn.State = ConnectionState.Open) Then
                conn.Close()
            End If
        End Try

    End Sub


Il codice è molto semplice definisco la stringa di connessione “stConn” che prevede due parametri il nome del Provider DBMS (che contiene le API di interfacciamento a qual particolare DBMS) e la posizione del file di database (in questo caso è nella cartella del progetto).
E’ poi definita un oggetto di tipo OleDBConnection di nome “conn” che ha come parametro la stringa di connessione definita in precedenza. E’ definito il valore k intero che indica il numero del record da selezionare nell’oggetto Tabella.
Viene gestita l’apertura della connessione con try .. catch .. finally in quanto se le connessione fallisce deve dare un errore e non terminare bruscamente il programma. Viene definito un Dataset.
Se la connessione va a buon fine nel blocco try è definita la query SQL come stringa, viene eseguta la query mediante l’oggetto OleDBAdpater che prende due parametri la connessione e la query.
La query è eseguita (abbiamo tralasciato la try .. catch in caso di errori SQL). L’oggetto “ris” viene utilizzato per popolare il dataset con etichetta pari al nome della tabella per semplicità “Studente”.
E’ definito l’oggetto di output DataTables con i dati estratti dal dataset (è necessario rispettare la sequenza di operazioni).
Nel blocco di righe:

Per continuare a leggere questo articolo devi sottoscrivere un abbonamento
Puoi abbonarti al link al menù principale o cliccando sul link Abbonati Ora!

Video dell’articolo