برای لود از کد زیر استفاده کنید:
string RptName = Request.Params["RptName"].ToString();
//RptName = RptName.Replace(" ", "+");
//RptName = SecurityClass.DecryptText(RptName);
RptName += ".rpt";
RptName = Request.PhysicalApplicationPath + "Report\\Rpt\\" + RptName;
ConnectionInfo crConnectionInfo;
ReportDocument rd = newReportDocument();
rd.Load(RptName, OpenReportMethod.OpenReportByTempCopy);
pathFile = RptName;
crConnectionInfo = newConnectionInfo();
crConnectionInfo.ServerName = System.Configuration.ConfigurationManager.AppSettings["ServerName"];
crConnectionInfo.DatabaseName = System.Configuration.ConfigurationManager.AppSettings["DatabaseName"];
crConnectionInfo.UserID = System.Configuration.ConfigurationManager.AppSettings["UserName"];
crConnectionInfo.Password = System.Configuration.ConfigurationManager.AppSettings["Password"];
crDatabase = rd.Database;
crTables = crDatabase.Tables;
foreach (CrystalDecisions.CrystalReports.Engine.Table crTable in crTables)
{
crTableLogOnInfo = crTable.LogOnInfo;
crTableLogOnInfo.ConnectionInfo = crConnectionInfo;
crTable.ApplyLogOnInfo(crTableLogOnInfo);
}
CrystalReportViewer1.ReportSource = rd;
CrystalReportViewer1.DataBind();
برای خطای دوم :
برنامه تون رو trace کنید, چون شما دارید از متغیری استفاده میکنید که null میباشد.