【发布时间】:2010-09-17 10:17:50
【问题描述】:
我想将数据加载到会话中,以便在水晶报表查看器中单击下一个按钮时,应该从数据表中加载数据,而不是再次从数据库中检索数据。这是我的代码...
ReportDocument rpt = new ReportDocument();
DataTable resultSet = new DataTable();
string reportpath = null;
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
if (Request.QueryString.Get("id") == "5")
{
string publication = Request.QueryString.Get("pub");
DateTime date = DateTime.Parse(Request.QueryString.Get("date"));
int pages = int.Parse(Request.QueryString.Get("pages"));
int sort = int.Parse(Request.QueryString.Get("sort"));
if (sort == 0)
{
reportpath = Server.MapPath("IssuesReport.rpt");
rpt.Load(reportpath);
DataTable resultSet1 = RetrievalProcedures.IssuesReport(date, publication, pages);
Session["Record"] = resultSet1;
}
DataTable report = (DataTable)Session["Record"];
rpt.SetDataSource(report);
CrystalReportViewer1.ReportSource = rpt;
我正在尝试这段代码,但是当我点击下一个按钮时,它给了我无效报告源的错误。我猜会话是空的,这就是它给我这个错误的原因。
我该如何解决这个问题...
【问题讨论】:
-
如果您的代码将所有丢失的大括号放回它们所属的位置,这将有所帮助。很难说每个 if 语句的范围是什么。
标签: c# session web-applications