A prima vista, il codice mi sembra molto "caotico": meno male che il problema è già stato risolto poiché, ad una prima occhiata, non mi sarebbe stato possibile ricostruire il "flusso" del programma e la sequenza con cui vengono eseguite le istruzioni.

Anche io creo delle classi di utilità per la connessione al database (in .NET non è possibile fare altro se si vuole condividere una connessione ai dati... alla faccia del RAD, almeno copiare bene dai concorrenti, ma questo è un altro discorso), tuttavia ogni oggetto che deve essere chiuso o distrutto, deve subire questa sorte e ciò è molto difficile se si trasformano i riferimenti a Connection, Transaction e Command in campi/membri della classe. :master: