Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Variabile globale?
domenica 16 luglio 2006 - 03.36
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
shaolin
Profilo
| Newbie
23
messaggi | Data Invio:
dom 16 lug 2006 - 03:36
Ciao a tutti.
Devo creare un'applicazione che interagisce con un database remoto.
Mi chiedevo: se io creo una classe che gestisce le interazioni base col database, per esempio "connetti", "disconnetti", "EseguiQuery", se creo un'istanza di questa classe in una form di login utente, poi come mi devo comportate nelle altre finestre?
Ammettiamo che creo l'istanza nella finestra di login
dim conn as new myclassdb (.............)
poi mi accorgo che nella finestra principale che è un contenitore (MDI), nella quale ho il menu, devo fare altre operazioni, in linea teorica dovrei creare un'altra istanza della classe, ma ciò non mi torna.
Io con vb6 avrei creato una variabile globale in un modulo e quindi "conn" sarebbe visibile a tutti e già valorizzata al passaggio da una form all'altra.
Spero di essere stato chiaro (non credo però), nel caso proverò a specificare meglio.
Ringrazio per le risposte.
Max
alextyx
Profilo
| Expert
668
messaggi | Data Invio:
dom 16 lug 2006 - 08:33
Può darsi che io stia trascurando qualcosa...eventualmente me lo chiarirai, ma credo che tu possa tranquillamente creare una classe, usando 'Public' anzichè Dim (che equivale a private, tranne che all'interno di strutture) in un modulo e accedervi da qualunque punto del progetto. Addirittura dovresti poter dichiarare la tua istanza di classe (Public c1 as conn) e poi invocarne il metodo costruttore (c1 = new conn) da dove ti è più comodo, magari passando dei parametri di inizializzazione che solo in quel momento hai disponibili (c1 = new conn(primoparam,secondoparam)), ovviamente questo nel caso tu abbia dotato la tua classe di un overload del costruttore. Fammi sapere...ciao
shaolin
Profilo
| Newbie
23
messaggi | Data Invio:
dom 16 lug 2006 - 15:46
Ciao, innanzitutto grazie per la risposta :)
Ti spiego il mio dubbio.
Io ho creato una classe pubblica in questo modo:
public class myconndb
All'interno ho un membro che rappresenta la connessione al database (m_conn).
Tralasciando tutto il resto ti chiedo questo:
io tramite m_conn apro il database, ma lo faccio una volta sola in una form di login.
Però questa classe myconndb fa altre cose oltre ad aprire il db e quindi quell'istanza credo debba essere visibile altrove.
Forse tu con il tuo suggerimento PUBLIC C1 as myconndb mi stavi proprio dicendo quello?
Eventualmente se tutto ciò ti sembra "accrocchioso", quale può essere il metodo migliore per gestire questa situazione?
Grazie ancora
Max
alextyx
Profilo
| Expert
668
messaggi | Data Invio:
dom 16 lug 2006 - 16:05
Sì, ti stavo suggerendo che non avresti dovuto avere problemi di visibilità, dichiarandola ed eventualmente istanziandola, come pubblica in un modulo. Se la classe deve tenere memoria di ciò che ha fatto, ad uso e consumo di chiunque vi acceda, allora va bene creare un'istanza 'globalmente visibile', altrimenti potresti anche creare istanze diverse.
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !