Sì, anzi, è una tecnica molto comoda. Impostando quella proprietà citata in questo thread (CommandBehavion.CloseConnection) è possibile ritornare agli strati sottostanti dell'applicazione il datareader anche se la connessione è stata aperta dalla funzione chiamata. Una volta letti i dati con il datareader è sufficiente chiudere questo per fare in modo che anche la connessione venga chiusa. Maggiori info qui:
http://www.aspitalia.com/liste/usag/script.aspx?ID=585

Ciao