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

时间:2020-04-16 11:02:33

标签: reporting-services rdlc

我正在尝试运行一个可以连接到数据库并运行的报告。我已经在报表中创建的数据源中添加了多个数据集。我试图在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运行?

1 个答案:

答案 0 :(得分:0)

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

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

在报告中将此参数设置为 DataSource 连接字符串

enter image description here

相关问题