Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    c# 2005 - sqlCommand

    ciao
    mi sto facendo una classe per accedere al db.
    volevo chiedere se in un metodo, genero un command e successivamente un data reader...

    se chiudo il command il data reader continua ad esistere??


  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,464
    Cosa intendi per "chiudere il command"? :master:
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    si scusa, volevo dire chiudere la connessione...

    in pratica avevo fatto una funzione che restituiva un data reader. quindi pre creare il data reader aprivo una connessione, poi facevo il necessario per caricae un data reader e poi chiudevo la connessione e successivamente ritornavo il data reader.

    bene, se chiudevo la connessione non mi funzionava, mentre se la lascio aperta il data reader ritornato dalla funzione funziona.

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,464
    Originariamente inviato da impennata
    bene, se chiudevo la connessione non mi funzionava, mentre se la lascio aperta il data reader ritornato dalla funzione funziona.
    Sarebbe più corretto agire in altro modo, creando la connessione esternamente al metodo che restituisce il DataReader, passando appunto la connessione come parametro affinché il metodo possa utilizzarne il riferimento per poter creare ed aprire il DataReader da restituire, che dovrebbe comunque essere chiuso il prima possibile.

    Se non c'è una gestione oculata di DataReader e connessioni, rischi di lasciarla sospesa o aperta troppo a lungo; un DataReader aperto sulla connessione impedisce qualsiasi altra interrogazione dati, quindi va sempre chiuso il prima possibile, sfruttando i costrutti "try...finally" a garanzia di ciò, oppure il costrutto "using".

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5
    infatti non volevo occupare troppo la risorsa.
    il tutto volevo incapsularlo in un metodo, ma ho visto che non è possibile, devo aprire, usare il datareader e poi chiuderlo.
    Ma non potendolo fare in un unica funzione devo invocare un metodo di chiusura della connessione.

    giusto???

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,464
    Originariamente inviato da impennata
    Ma non potendolo fare in un unica funzione devo invocare un metodo di chiusura della connessione.
    E' anche possibile sfruttare il parametro CommandBehavior del metodo ExecuteReader relativo all'oggetto Command utilizzato: c'è un flag CloseConnection che consente di chiudere la connessione quando viene chiuso il DataReader.

    Per maggiori informazioni, leggere MSDN.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  7. #7
    cosa fa in particolare?
    hai unnlink chiaro dove mi posso informare?
    grazie

  8. #8
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,464
    Originariamente inviato da impennata
    cosa fa in particolare?
    hai unnlink chiaro dove mi posso informare?
    Te l'ho postato sopra... controlla attentamente.

    Avere sottomano anche la Microsoft .NET SDK Documentation, installata con l'SDK del Framework, è indispensabile.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  9. #9

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 © 2025 vBulletin Solutions, Inc. All rights reserved.