Asp.net RDLC报表查看器钻取报表

Asp.net RDLC报表查看器钻取报表,asp.net,rdlc,reportviewer2008,Asp.net,Rdlc,Reportviewer2008,我在MSDN论坛上发布了这个问题 但我没有得到任何回应。你能帮帮我吗。我真的被这个相当简单的任务困住了 我的代码似乎是正确的,但我还是得到了正确的答案 尚未为数据源“DataSet1\u Order\u Details”提供数据源实例 对不起,交叉邮寄 我也有同样的经历,那是因为我试图从错误的地方看到报告,让我解释一下 RDLC报告中有一个数据集 DAL中有一种从数据库获取数据的方法 BAL或UI中有一个方法调用DAL方法并填充数据集。大多数情况下,这是一个独特的页面,它从用户处获取一些参数

我在MSDN论坛上发布了这个问题

但我没有得到任何回应。你能帮帮我吗。我真的被这个相当简单的任务困住了

我的代码似乎是正确的,但我还是得到了正确的答案

尚未为数据源“DataSet1\u Order\u Details”提供数据源实例


对不起,交叉邮寄

我也有同样的经历,那是因为我试图从错误的地方看到报告,让我解释一下

  • RDLC报告中有一个数据集
  • DAL中有一种从数据库获取数据的方法
  • BAL或UI中有一个方法调用DAL方法并填充数据集。大多数情况下,这是一个独特的页面,它从用户处获取一些参数并填充数据集,最后将用户重定向到报表查看器页面
  • 您的eror将显示在报表查看器页面中
因此,接下来的事情可能会发生

  • 直接进入reportviewer页面而不填充数据集
  • 您转到了正确的页面并填充了数据集,但在report viewer页面中,您没有以代码隐藏方式将数据集绑定到报表
  • 在某些情况下,这可能是因为会话过期
    • 我解决了这个错误

      我正在添加数据源,如

      this.ReportViewer.Localreport.DataSource.Add
      (new RemoteDataSource("DataSet1_Order_Details", ObjectDataSource2.ID));
      
      相反,应按以下方式添加数据源

      DataSet1TableAdapter.OrderDetails od = new DataSet1TableAdapter.OrderDetails();
      ((LocalReport)e.report).Datasources.Add(new RemoteDataSource("DataSet1_Order_Details", od.get(orderid))
      
      这解决了问题,现在我可以在Reotviewer报告中进行深入研究

      问候,,
      阿披舍克

      这对我也起了作用,尽管真正的关键就在这里:

      ((LocalReport)e.report)
      
      就我而言,我正在使用:

      ((LocalReport)e.report).LoadReportDefinition(report_stream);
      
      foreach (ReportParameter rp in ((LocalReport)e.report).OriginalParametersToDrillthrough)
              {
                  _paramCollection[rp.Name].parameterValue.AddRange(rp.Values.OfType<string>());
              }
      DataTable newData = GetData();
      ReportDataSource rds = new ReportDataSource();
      rds.Name = _datasetName;
      rds.Value = newData;
      ((LocalReport)e.report).DataSources.Add(rds);
      
      ((LocalReport)e.report).LoadReportDefinition(报告流);
      foreach(报告参数rp in((LocalReport)e.report).OriginalParametersToDrillthrough)
      {
      _paramCollection[rp.Name].parameterValue.AddRange(rp.Values.OfType());
      }
      DataTable newData=GetData();
      ReportDataSource rds=新的ReportDataSource();
      rds.Name=_datasetName;
      rds.Value=newData;
      ((LocalReport)e.report).DataSources.Add(rds);
      

      reportviewer处理其余部分@知道的不多,感谢您的指导。

      我没有进入报表查看器,而是填充数据集。我的第一份报告看起来很完美。当我点击链接时,我有一个钻取事件处理程序,我会尽一切努力填充数据集。看看我发布的代码和截图。