惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

J
Java Code Geeks
量子位
腾讯CDC
A
About on SuperTechFans
小众软件
小众软件
Microsoft Azure Blog
Microsoft Azure Blog
T
Tailwind CSS Blog
V
V2EX
B
Blog RSS Feed
H
Hackread – Cybersecurity News, Data Breaches, AI and More
GbyAI
GbyAI
Recent Announcements
Recent Announcements
Microsoft Security Blog
Microsoft Security Blog
博客园 - 叶小钗
罗磊的独立博客
宝玉的分享
宝玉的分享
WordPress大学
WordPress大学
大猫的无限游戏
大猫的无限游戏
IT之家
IT之家
V
Visual Studio Blog
D
DataBreaches.Net
博客园 - 三生石上(FineUI控件)
月光博客
月光博客
有赞技术团队
有赞技术团队

博客园 - 振河

在windows 2008 server 中Password must meet complexity requirements VS2005 中控件的 GenerateMember 属性 WCF 安全之自定义的用户名/密码身份验证 Visual Studio 2008 开发WPF应用程序系列文章——window class 之间的继承 Visual Studio 2005 开发WPF应用程序系列文章——什么是WPF 配置 SQL Server 2005 远程调试存储过程 (转载) C# Office编程——Word 错误类型:“系统找不到 Microsoft.Office.Interop.Word" Reporting Service 在文本框中换行的问题 数据库范式设计 JavaScript 用DIV模拟弹出窗口并跟随窗体滚动 SQL Server 2000 占内存居高不下可能的原因及其解决方法 轻松移除VS2005解决方案中的VSS绑定信息 使用ComponentOne 中 C1TrueDBGrid 实现Master-Detail Grid Reporting Services 运行时设置报表的Page Header的大小 朋友,5.1节日快乐 SQL Server 2005 Reporting Services 使用C#类库中的函数方法 SQL Server 2005 Reporting Services 报表中随意格式化日期的方法 SQL Server 2005 Reporting Services的一个bug及其解决方法 SQL Server 2005 Reporting Services 在排版上存在的一个问题
SQL Server 2005 Reporting Services动态设置数据源
振河 · 2008-12-22 · via 博客园 - 振河

Reporting Services动态设置数据源是什么意思呢?就是在运行状态下来设置报表的的数据源。之前在网上也看到了不少关于动态设置数据源的帖子,基本上都是一个思路。那就是,在报表中加入4个参数,分别是ServerName(数据库服务器的名字)、DataBaseName(数据库名称)、UserName(访问数据库的用户名)、Password(访问数据库的密码),然后在数据源的链接字符串中输入一个使用参数形式的表达式,然后发布报表到报表服务器。OK,这就可以实现动态设置数据源了。

但是,有的时候这种做法就不灵了。比如说,我不想用IE去浏览报表,我想使用Reporting Services 提供的Webmethod 来生成报表。这种情况下就不可了。使用Reporting Servicesweb服务生成报表的话,数据源要求提供链接数据库的方式,是Windows认证还是使用用户名和密码的认证方式,这一点是最重要的,也就是说在链接字符串中设置的用户名和密码是不起作用的,必须单独设置才可以的。

举一个例子,用web服务获取报表的参数列表的webmethodGetReportParameters,该方法需要一个参数DataSourceCredentials[] credentials,如果你使用的Data Source Reference的话,这个参数你可以设置成null,大家可能都知道,如果要动态设置数据源,我们是不可以使用Data Source Reference的,我们只能使用Local Data Source,这是你就必须设置这个参数了,这一点很重要的,决定了你是不是可以动态设置数据源了,但是很少有人讲到这一点的(也许是我没有搜到)。

呵呵,其实如果我们找到了方法,问题就很简单了。