Example of how to set parameters via code behind for an SSRS rdl report
ReportExecutionService rs = new ReportExecutionService();
rs.Credentials = System.Net.CredentialCache.DefaultCredentials;
rs.Url = "http://ServerName/reportserver/ReportExecution2005.asmx";
ExecutionInfo execInfo = new ExecutionInfo();
ExecutionHeader execHeader = new ExecutionHeader();
rs.ExecutionHeaderValue = execHeader;
execInfo = rs.LoadReport(reportPath, historyID);
//execInfo.Parameters[0].
ParameterValue prmCompanyID_1 = new ParameterValue();
prmCompanyID_1.Name = "iCompanyID";
prmCompanyID_1.Value = "276";
ParameterValue prmCompanyID_2 = new ParameterValue();
prmCompanyID_2.Name = "CompanyID";
prmCompanyID_2.Value = "276";
ParameterValue prmProdMonth = new ParameterValue();
prmProdMonth.Name = "ProdMonth";
prmProdMonth.Value = "12";
ParameterValue prmProdYear = new ParameterValue();
prmProdYear.Name = "ProdYear";
prmProdYear.Value = "2010";
ParameterValue[] prmList = new ParameterValue[4] { prmCompanyID_1, prmCompanyID_2, prmProdMonth, prmProdYear };
rs.SetExecutionParameters(prmList, "en-us");