O valor de retorno é enviado por último na resposta do banco de dados, portanto, você deve ler o conjunto de resultados completamente antes de poder acessar o valor de retorno.
O que o
SafeDataReader
aula faz? É possível que impeça que todo o conjunto de resultados seja lido? Tente mover o código que lê o valor de retorno para fora do
using
bloco para o leitor de dados. Isso pode ajudar a avançar a resposta além do conjunto de resultados para que o valor de retorno esteja disponível.