That exception means you are not declaring the named variable as a parameter of your command.
You need to add this:
cmd.Parameters.Add("@ServiceId", SqlDbType.VarChar).Value = "the value for it";
[EDIT]
If you are not going to declare that variable and give it a value, then you cannot use it as a parameter in your WHERE clause. Your options are to remove it completely or add the variable.