Ti ringrazio per il consiglio, però mi sorge un dubbio.
Ho modificato la funzione in modo che la connessione si chiuda prima del return. Però il datareader è registrato e mi viene restituito nello script correttamente. Se no che altro metodo ho per estrarre successivamente i campi singolarmente? Col datatable si può fare?