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.