Acredito que você precise definir o CommandType para CommandType.StoredProcedure para obter o valor de retorno do seu proc armazenado. Veja a resposta aceita aqui:Obtendo valor de retorno do procedimento armazenado no ADO.NET