ciao chan
prova a fare cosi:
fra i parameters ne metti uno con nome = @RETURN_VALUE e come drectionType ReturnValue..
DOPO aver riempito il dataset (anche se vuoto), e chiuso quindi il datareader, per recuperare il valore
int valRitorno =(int) cmd.Parameters["@RETURN_VALUE"].Value;
spero di averti aiutato!