如何在SSRS本地报告中保存凭据

问题描述 投票:0回答:1

我正在尝试运行一个可以连接到数据库并运行的报告。我已经在报表中创建的数据源中添加了多个数据集。我试图在WebApi内以编程方式运行此程序并返回PDF。提交报告时,出现错误消息:

ReportProcessingException:植物

植物是报表中我的数据集名称之一,所以我去了植物中的查询,并在Sql Server Management Studio中运行了它,没有任何错误。

接下来,我决定查看报告上的XML,它看起来像这样:

  <DataSources>
    <DataSource Name="DataSource1">
      <ConnectionProperties>
        <DataProvider>SQL</DataProvider>
        <ConnectString>Data Source=.\SomeInstance;Initial Catalog=SomeDataBaseName</ConnectString>
        <Prompt>Specify a user name and password for data source DataSource1.</Prompt>
      </ConnectionProperties>
      <rd:DataSourceID>f4a33a86-c8f5-4fef-8e92-903b536c45dc</rd:DataSourceID>
      <rd:SecurityType>DataBase</rd:SecurityType>
    </DataSource>
  </DataSources>

而且我注意到该数据库没有任何凭据。

我还注意到,每次关闭,重新打开并运行报告时,它都会要求提供数据库凭据。

所以我决定尝试在连接字符串中添加凭据,例如:

 <ConnectString>Data Source=.\SomeInstance;Initial Catalog=SomeDataBaseName;User Id=SomeUser;Password=SomePassword</ConnectString>

得出与以前相同的结果。

因此,我决定只删除其中一个数据集,然后查看是否可行,仅余下的数据集出现相同的错误。

如何获取报告以连接到数据库并使用LocalReport而不是ServerReport运行?

reporting-services rdlc
1个回答
0
投票

您可以创建新的报告参数,例如,称为ConnectionString

从代码中调用报表时,将连接字符串传递给参数,或者代替它,只需在报表中设置参数的默认值。

在报告中,将此参数设置为DataSourceConnection string

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.