Generally this error occurs when you are passing more parameters than the required.
So,Verify each and every parameter first.And the following code is to get the output parameter from sp.
create proc sp_userinformation
(
@username varchar(20),
@password varchar(20),
@firstname varchar(20),
@lastname varchar(20),
@email varchar(20),
@phoneno varchar(20),
@location varchar(15),
@created_by varchar(20)),
@ERROR char(500) output
as
insert into userinformation(username,password,firstname,lastname,email,phoneno,location,created_by)values (@username,@password,@firstname,@lastname,@email,@phoneno,@location,@created_by)
set @ERROR='Sucessfully Inserted'
and in codebehind.cs
SqlParameter error_msg=New SqlParameter("@ERROR",sqldbtype.char,500);
error_msg.Direction=ParameterDirection.Output;
cmd.parameters.add(error_msg);
after the execution
you can get the value of output parameter
string message=error_msg.value.ToString();