SQL Reporting Services 困惑的解决 直接传递参数并用ReportViewer来呈现报表
前几天一个偶然的机会上了odetocode.com,看到几篇关于SQL Reporting Services的文章,很有启发性,于是结合了Reporting Services 联机丛书研究了一下,我的困惑算是暂时解决了。
通过直接传递参数给.aspx页面(使用ReportViewer控件呈现报表),在.aspx页面中接受参数从而呈现所需报表。主要解决方法如下:
1.用vs.net打开ReportViewer这个项目,项目文件夹在你安装的SQL Reporting Services的相关文件夹中(见图1)。
2.打开ReportViewer.cs文件,写入以下方法(见图2),然后重新编译这个项目。
3.新建一个带参数的报表文件rdl,具体不详述,请参考我以前的文章。
4.新建一个.aspx文件,引用编译好ReportViewer.dll,拖入这个控件到.aspx页面(见图3),
可以在ReportViewer的属性栏中直接设置报表路径和报表服务器路径及相关属性,也可以在.aspx.cs的page_load中用code的方式设置(见图4)。
5.为了测试传递参数,再建一个htm页面加入一个链接,连接中加入所要传递的参数(见图5)。
6.在.aspx.cs代码中接受传递来的参数,同时要把接收到参数传递给报表,这就用到了图2中的方法了(见图6)。
7.运行后就可以得到你所传参数的报表了(见图7),上面没有查询参数框是因为在ReportViewer属性的Parameters设为false了,这样看起来界面更好一点。
总结一下:最主要的地方还是在第2步,其实我们可以添加其他类似的方法来达到自己所要的结果。如果要传递2个或3个值怎么办,其实方法也是一样的,只要在报表文件中设置2个或3个参数就可以了。另外补充一下关于导出打印的问题,其实可以在.cs代码中直接设置导出的格式,比如 this.ReportViewer1.Format=“pdf“;这样页面就直接会用acrobat打开的。
以上纯属个人使用经验,若有不对的地方请大家指正,也欢迎大家一起讨论。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix