【发布时间】:2020-07-29 14:20:57
【问题描述】:
我正在尝试运行一个可以连接到数据库并运行的报表。我已将多个数据集添加到我在报表中创建的数据源中。我正在尝试在 WebApi 内以编程方式运行它并返回 PDF。当我呈现报告时,我收到一条错误消息:
ReportProcessingException:植物
Plant 是我在报告中的 DataSet 名称之一,所以我去了 Plant 中的 Query 并在 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 运行?
【问题讨论】: