【问题标题】:Not find DataSource in .rdl report在 .rdl 报告中找不到数据源
【发布时间】:2014-12-04 08:24:51
【问题描述】:

在 SQL Server 报表生成器中创建了一个报表。都好!试图将其引入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 为空。为什么?在报表生成器中一切正常

XMLMyReport

   <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 是您报告的服务器端 格式 - 如果您想在本地运行,使用LocalReport,您需要一个.rdlc 文件和您还需要在本地定义数据库连接 - 服务器上的那些对您没有任何好处...
  • 所以我们必须使用组件reportViewer1.ServerReport?本地生成.rdl是不可能的,需要编程设置DataSource吗?

标签: c# sql-server reporting-services rdlc rdl


【解决方案1】:

不,您不应该在客户端上使用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);
    }
    

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-09
    相关资源
    最近更新 更多