ReportParameter p1 = new ReportParameter("ReportParameter1", Session["ReportDate"].ToString());
ReportViewer1.LocalReport.SetParameters(new ReportParameter[] { p1 });
ReportViewer1.Visible = true;
ReportViewer1.DataBind();
ReportViewer1.LocalReport.Refresh();
Try It because yours report is working for first time. I think by the second time you are just refreshing report rather then binding the data or parameter again.