C # El procedimiento o función almacenada espera un parámetro que no se proporciona

Soy bastante nuevo en C # y estoy tratando de configurar la llamada a un procedimiento almacenado en mi base de datos que toma un parámetro.

Aparece el error "El procedimiento o la función 'SP_getName' espera el parámetro '@username', que no se proporcionó".

Mi procedimiento almacenado funciona bien cuando le proporciono el parámetro y lo ejecuto a través del estudio de administración SQL.

GO

DECLARE @return_value int

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

SELECT  'Return Value' = @return_value

GO

Sin embargo, cuando intento llamarlo, el error está en cómo paso el parámetro, pero no puedo detectar cuál es el 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();

¡Cualquier ayuda para detectar mi error sería muy apreciada!

También he intentado mirar estas dos publicaciones, pero no he tenido suerte:

El procedimiento almacenado o la función espera un parámetro que no se proporciona

El procedimiento o la función espera el parámetro, que no se proporcionó

¡Gracias!

Respuestas a la pregunta(3)

Su respuesta a la pregunta