You can use the following code
You can first convert the datareader to datatable
DataTable dt = new DataTable();
dt.Load(dr);
// Then you use the use that directly to the repory
ReportDocument report = new ReportDocument();
report.Load(Server.MapPath("~/Reports/bydos.rpt"));//Your report Page
report.SetDataSource(dt);
CrystalReportViewer1.ReportSource = report;
CrystalReportViewer1.DataBind();
You can also refer to the following Links
http://forums.asp.net/t/1677080.aspx/1[
^]