Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it L'avatar di Kahm
    Registrato dal
    Dec 2004
    residenza
    Rome
    Messaggi
    3,452

    [vb.net]chiudere connessione dopo uso di una classe

    sto mettendo mani ad un codice, e mi sono accorto che spesso non chiude la connessione, fortuna che il database regge connessioni aperte e poi in automatico fa un garbage
    ma vorrei risolvere il problema in automatico visto che altrimenti mi toccherebbe riscrivere il codice

    in pratica instanzia una classe
    codice:
    dim obj as new clsArticolo
    obj.descrizione="ciao"
    obj.inserisci()
    e dentro la classe al costruttore apre la connessione e la riutilizza internamente
    codice:
    sub new
    conn as new oledbconnection
    conn.connectionstring=""
    conn.open
    dopo l'istruzione inserisci() sopra indicata, come faccio a dirgli che appena non lo uso piu obj deve chiudere la connessione in automatico? purtroppo dopo inserisci potrebbe fare altre cose successivamente.
    stavo pensando di fare una procedura chiudiconnessione() da richiamare ogni volta , ma guardando il codice mi impazzirei
    NN vi diro mai chi sono in realta,
    tutti i miei 3D sono orfani, non insistete per farmi rispondere ai 3D aperti da me

  2. #2

  3. #3
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,113
    non so. Forse la classe clsArticolo dovrebbe implementare l'interfaccia IDisposable e la richiamerei con using,

    codice:
    using obj as new clsArticolo()
    	obj.descrizione="ciao"
    	obj.inserisci()
    end using
    Ultima modifica di pietro09; 29-03-2021 a 18:18
    Pietro

  4. #4
    Utente di HTML.it L'avatar di Kahm
    Registrato dal
    Dec 2004
    residenza
    Rome
    Messaggi
    3,452
    Quote Originariamente inviata da optime Visualizza il messaggio
    se conn è una variabile locale, dove la apri la chiudi
    hanno implementato che nel costruttore a volte si può passare la connessione attiva e lui la riutilizza in modo che non si apra e chiuda per ogni procedura, ma si utilizzi una sola.
    Il problema è che non la chiudono!
    NN vi diro mai chi sono in realta,
    tutti i miei 3D sono orfani, non insistete per farmi rispondere ai 3D aperti da me

  5. #5
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,113
    Ammesso di aver capito, non puoi fare così?

    codice:
    Using connessione As New OleDbConnection(stringaConnessione)    
    	connessione.Open()
        
        dim obj as new clsArticolo(connessione)
        '***
    End Using
    Pietro

  6. #6
    Quote Originariamente inviata da Kahm Visualizza il messaggio
    hanno implementato che nel costruttore a volte si può passare la connessione attiva e lui la riutilizza in modo che non si apra e chiuda per ogni procedura, ma si utilizzi una sola.
    Il problema è che non la chiudono!
    c'è un punto in cui ci si accorge che la connessione attiva NON è stata passata, e allora viene aperta; allo stesso modo la si chiude all'uscita

  7. #7
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,113
    Quote Originariamente inviata da optime Visualizza il messaggio
    c'è un punto in cui ci si accorge che la connessione attiva NON è stata passata, e allora viene aperta; allo stesso modo la si chiude all'uscita
    concordo al 100%
    Pietro

  8. #8
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,819
    Quote Originariamente inviata da Kahm Visualizza il messaggio
    hanno implementato che nel costruttore a volte si può passare la connessione attiva e lui la riutilizza in modo che non si apra e chiuda per ogni procedura, ma si utilizzi una sola.
    Il problema è che non la chiudono!
    non puoi aggiungere la chiusura della connessione alla fine del metodo

    inserisci()

    ?

    magari centralizzando il metodo che la chiude, per farlo usare ad altri metodi che ci sono in clsArticolo ?

  9. #9
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,113
    Ma si può vedere il codice di quella classe?
    Pietro

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2021 vBulletin Solutions, Inc. All rights reserved.