Here is the code to bind the Report Viewer using the Stored Procedure and Data Set
SqlCommand cmd = new SqlCommand("GetEmployeeDetailsList", con);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
ReportDataSource rds = new ReportDataSource("DataSet1", dt);
ReportViewer1.Reset();
ReportViewer1.ProcessingMode = ProcessingMode.Local;
ReportViewer1.LocalReport.ReportPath = Server.MapPath("/EmpReport.rdlc");
ReportViewer1.LocalReport.ReportEmbeddedResource = "EmpReport.rdlc";
ReportViewer1.LocalReport.DataSources.Clear();
ReportViewer1.LocalReport.DataSources.Add(rds);
you can refer to below link for more details.
bind datatable to rdlc and reportviewer