Quantcast
Channel: Visual Basic Tips and Tricks
Viewing all articles
Browse latest Browse all 2212

Modulo di connessione databse

$
0
0

Ciao a Tutti.

Il percorso formativo autoditta che ho intrapreso qualche mese fa, probabilmente "tardi" mi ha posto dinanzi la conoscienza di moduli e classi di Vb.net 

Sono alle prese con del codice da me scritto che mi ha permesso di realizzare grazie all'aiuto del forum con piena soddisfazione un semplice programma  e che ora ho intenzione di migliorarne la struttura per quanto riguarda la connessione al database(DB access), trasferendo la parte di codice dedicata in due moduli separati.

 Premetto non so sia corretto l'approccio dei moduli distinti:

n° 1 modulo "connessione"

n° 1 modulo "comandi" in cui vorrei siano presenti tutte le istruzioni SQL dirette al DB

 

Dalla form (FrmMain) dove è presente un Datagridview di visualizzazione dati e un Button1 dovrei inviare l'istruzione SQL al modulo comandi il quale dovrebbe comunicare con il modulo connessioni ed eseguire l'istruzione (in questo caso legge l'intera Tabella Clienti)

Lo scopo è di poter raggruppare e suddividire tutta la struttura del codice.

Riporto di seguito l'errata comunicazione tra i moduli.

 

Imports System.Data.OleDb

‘classe FrmMain

PublicClassFrmMain

    PrivateSub FrmMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesMyBase.Load

    EndSub

    PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim SQL AsString = "SELECT * FROM CLIENTI"

        Comandi.CaricaTab(SQL)

    EndSub

EndClass

 

‘Modulo connessione database

ModuleConnessione

    Private StringCon AsString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\Users\lavoro-win\Documents\DB.mdb;"

 

    PublicFunction Connetti() AsObject

        Dim connessione AsNewOleDbConnection(StringCon)

        connessione.Open()

        Return connessione

    EndFunction

EndModule

 

‘Modulo comandi per database

ModuleComandi

    PublicSub CaricaTab(ByVal SQL AsString)

        Connetti() 

        Using cmd AsOleDbCommand = NewOleDbCommand(SQL, Connetti)

            Using dr AsOleDbDataReader = cmd.ExecuteReader

                Using dt AsNewDataTable

                    dt.Load(dr)

                    WithFrmMain.DataGridView1

                        .DataSource = dt

                    EndWith

                EndUsing

            EndUsing

        EndUsing

    EndSub

EndModule


Grazie a chiunque mi sia di supporto.

 


Viewing all articles
Browse latest Browse all 2212