O procedimento ou função armazenada em C # espera um parâmetro que não é fornecido

Eu sou bastante novo em C # e estou tentando configurar a chamada para um procedimento armazenado no meu banco de dados que usa um parâmetro.

Recebo o erro "Procedimento ou função 'SP_getName' espera o parâmetro '@username', que não foi fornecido."

Meu procedimento armazenado funciona bem quando eu forneço o parâmetro e o executo via SQL Management Studio.

GO

DECLARE @return_value int

EXEC    @return_value = [dbo].[SP_getName]
    @username = 'bob101'

SELECT  'Return Value' = @return_value

GO

No entanto, quando tento chamá-lo, o erro está na maneira como estou passando o parâmetro, mas não consigo identificar qual é o problema.

           //create a sql command object to hold the results of the query
            SqlCommand cmd = new SqlCommand();

            //and a reader to process the results
            SqlDataReader reader;

            //Instantiate return string
            string returnValue = null;

            //execute the stored procedure to return the results
            cmd.CommandText = "SP_getName";

            //set up the parameters for the stored procedure
            cmd.Parameters.Add("@username", SqlDbType.NVarChar).Value = "bob101";

            cmd.CommandType = CommandType.Text;
            cmd.Connection = this.Connection;

            // then call the reader to process the results
            reader = cmd.ExecuteReader();

Qualquer ajuda em detectar meu erro seria muito apreciada!

Eu também tentei olhar para esses dois posts, mas não tive sorte:

Procedimento armazenado ou função espera parâmetro que não é fornecido

Procedimento ou função espera parâmetro, que não foi fornecido

Obrigado!

questionAnswers(3)

yourAnswerToTheQuestion