过程或函数 'SP' 需要未提供的参数“@param”

Procedure or function 'SP' expects parameter '@param', which was not supplied

我的 C# 代码遇到了这个错误。在SQL服务器执行存储过程没问题

Procedure or function 'SP' expects parameter '@outputparam', which was not supplied.

public string function1(int param1, string param2)
{
    SqlDataAdapter sqladapter = new SqlDataAdapter();
    SqlConnection conn = new SqlConnection(strcon);
    SqlCommand cmd;

    cmd = new SqlCommand("SP", conn);
    cmd.CommandType = CommandType.StoredProcedure;

    cmd.Parameters.AddWithValue("@param1", param1);
    cmd.Parameters.AddWithValue("@param2", param2);

    SqlParameter returnParameter = cmd.Parameters.Add("@outputparam", SqlDbType.NVarChar);
    returnParameter.Direction = ParameterDirection.ReturnValue;

    conn.Open();
    cmd.ExecuteNonQuery();
    conn.Close();

    return cmd.Parameters["@outputparam"].Value.ToString();
}
CREATE PROCEDURE [dbo].[SP] 
    (@param1 int,
     @param2 nvarchar(50),
     @outputparam nvarchar(20) OUTPUT)

试试这些代码

SqlParameter returnParameter = cmd.Parameters.Add("@outputparam", DbType.String);
returnParameter.Direction = ParameterDirection.ReturnValue;

改为

cmd.Parameters.Add("@outputparam", DbType.String, ParameterDirection.Output);

return cmd.Get<string>("@outputparam");