1

我刚刚在报表服务器上部署了我的第一个 SSRS 报表,并使用 ReportViewer 从应用程序中调用它(必须使用它)。问题是,它总是在执行报告之前询问数据库用户名和密码。无论我在哪里设置数据库凭据(在报表服务器上,在报表中),它总是要求我提供它们。所以我尝试像这样以编程方式设置数据源凭据:

                    DataSourceCredentials cred = new DataSourceCredentials();
                    ReportDataSourceInfoCollection dataSource = ReportViewer1.ServerReport.GetDataSources();
                    cred.Name = dataSource.First().Name;
                    cred.UserId = "sa";
                    cred.Password = "admin_pass";
                    ReportViewer1.ServerReport.SetDataSourceCredentials(new DataSourceCredentials[] { cred });
                    ReportViewer1.ServerReport.Refresh();

并且报告的第一页加载得很好。不幸的是,第二页再次要求提供凭据,如果我不再键入它们,报告查看器会显示一个错误,例如 dataSource 不存在:

无法创建到数据源“DataSource2”的连接。(rsErrorOpeningConnection)

有人有这个问题吗?如何解决?谢谢!

4

3 回答 3

0

DataSource2首先,您的项目中是否调用了数据源?我之前遇到过这样一种情况,即 Visual Studio 报表设计器出于某种原因自动创建了一个我不知道的额外数据源(但在共享数据源文件夹下不可见)。

因此,您需要在 Visual Studio 中右键单击您的报告,然后单击View Code以验证数据源。在我的情况下,我所要做的就是删除对不存在的数据源的任何引用,并且一切都按预期工作。

否则,请查看 SSRS 日志以获取更详细的错误消息。日志应位于类似于C:\Program Files\Microsoft SQL Server\MSRS11.SQLPROD1\Reporting Services\LogFiles

详细的错误信息是什么?

于 2015-02-19T17:43:31.570 回答
0

您的数据源可能已配置为提示输入凭据。我认为您应该只在报告中指定特定的用户名和密码。请看下面的截图:

在此处输入图像描述

于 2016-05-17T13:47:42.147 回答
0

你什么时候设置凭据?确保将其作为 ReportLoadedEventHandler 添加到 ReportLoaded。

于 2020-05-28T06:33:31.840 回答