如何从RDLC中的不同程序集/库中引用数据集?

时间:2011-01-26 01:53:03

标签: c# dataset rdlc

我在本地呈现,我将数据集放入我的解决方案的数据访问层。如何从RDLC访问它?

1 个答案:

答案 0 :(得分:1)

虽然我不确定如何直接回答你的问题,但我自己遇到了同样的问题,这是我的解决方案:

在C#中,我只是在本地访问了报告,并用我想要提供的任何数据覆盖了数据源:

    using (var report = new LocalReport())
    {
        report.ReportPath = @"C:\Sample.rdlc";
        report.DataSources.Clear();
        report.DataSources.Add(new ReportDataSource("MyDataSet", yourDataSet));
        var bytes = report.Render("PDF");
    }

然后在RDLC文件的XML中,我只是指定了一个虚拟数据源,然后手动设置我自己的数据集的值:

  <DataSources>
    <DataSource Name="Dummy">
      <DataSourceReference>Dummy</DataSourceReference>
      <rd:DataSourceID>bd7d6037-aff5-4ce5-a156-a75f8c1e660b</rd:DataSourceID>
    </DataSource>
  </DataSources>
  <DataSets>
    <DataSet Name="MyDataSet">
      <Fields>
        <Field Name="Name">
          <DataField>Name</DataField>
          <rd:TypeName>System.String</rd:TypeName>
        </Field>
        <Field Name="Amount">
          <DataField>Amount</DataField>
          <rd:TypeName>System.Decimal</rd:TypeName>
        </Field>
      </Fields>
      <Query>
        <DataSourceName>Dummy</DataSourceName>
        <CommandText />
      </Query>
    </DataSet>
  </DataSets>

这对我有用。