在 .rdl 报表中找不到数据源

本文关键字:找不到 数据源 报表 rdl | 更新日期: 2023-09-27 18:33:14

在SQL Server Report Builder中创建了一个报表。都很好!试图将其带入ReportViewer,但写入错误

对于数据源"DataSet1",尚未设置数据源的实例。

法典:

private void button1_Click(object sender, EventArgs e)
{
    reportViewer1.LocalReport.ReportPath = @"C:'MyReport.rdl";
    reportViewer1.ProcessingMode = ProcessingMode.Local;      
    ReportParameter rp = new ReportParameter("code","100");
    reportViewer1.LocalReport.SetParameters(rp);
    this.reportViewer1.RefreshReport();
}

reportViewer1.LocalReport.DataSources为空。为什么?在报表生成器中,一切都很好

XML MyReport

   <DataSources>
     <DataSource Name="NL">
       <ConnectionProperties>
         <DataProvider>SQL</DataProvider>
         <ConnectString>Data Source=ACH'SQLEXPRESS;Initial Catalog=NL</ConnectString>
       </ConnectionProperties>
       <rd:SecurityType>DataBase</rd:SecurityType>
       <rd:DataSourceID>629e3b49-aebf-48dc-bb89-f47956feaef8</rd:DataSourceID>
     </DataSource>
   </DataSources>
   <DataSets>
     <DataSet Name="DataSet1">
       <Query>
         <DataSourceName>NL</DataSourceName>
         <QueryParameters>
           <QueryParameter Name="@code">
             <Value>=Parameters!code.Value</Value>
           </QueryParameter>
         </QueryParameters>
         <CommandText>SELECT
   window.code
   ,window.window
   ,window.[user]
 FROM
   window
 WHERE
   window.code &lt; @code</CommandText>

在 .rdl 报表中找不到数据源

不,您不应该在客户端上使用 ServerReport 选项。应分两个步骤从服务器下载报表数据:

  • 在服务器上生成报告文件并以rdlc格式将其保存在本地
  • 将报表数据源生成为 DataSet ,并以编程方式设置数据源,如下所示:

    reportViewer1.LocalReport.DataSources.Clear();
    reportViewer1.LocalReport.SetParameters(GetReportParameters(parameter));
    foreach (var source in ResultDataSet.Tables)
    {
        reportViewer1.LocalReport.DataSources.Add(new ReportDataSource(source.Name, source);
    }