我刚刚在Report Server上部署了我的第一个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)
有没有人有这个问题?怎么解决?谢谢!
答案 0 :(得分:0)
首先,项目中是否有一个名为DataSource2
的数据源?我遇到过一种情况,因为某些原因,Visual Studio报表设计器自动创建了一个我不知道的额外数据源(但在Shared Data Sources文件夹下不可见)。
因此,您需要在Visual Studio中右键单击报表,然后单击View Code
以验证数据源。在我的情况下,我所要做的就是删除对不存在的数据源的任何引用,一切都按预期工作。
否则,请查看SSRS日志以获取更详细的错误消息。日志应位于类似于C:\Program Files\Microsoft SQL Server\MSRS11.SQLPROD1\Reporting Services\LogFiles
详细的错误消息是什么?
答案 1 :(得分:0)
答案 2 :(得分:0)
您何时设置凭据?确保将其作为ReportLoadedEventHandler添加到ReportLoaded。