当前位置:编程学习 > C#/ASP.NET >>

winform中RDLC报表调用存储过程,参数怎么传过去?

我建了个FORM,拖了个reportViewer控件进去,新建一个RDLC报表,数据源选择的是SQL Server里的存储过程,(这个存储过程带一个参数),在报表设置了参数,参数名为ID,把报表里拖了个表格,选了一些字段放进去。然后我把FORM的reportViewer报表指向这个RDLC报表,在FORM里写如下语句

this.reportViewer1.LocalReport.ReportEmbeddedResource = "report.rdlc";
ReportParameter rp = new ReportParameter("IDt", "9856");
this.reportViewer1.LocalReport.SetParameters(new ReportParameter[] { rp });
this.reportViewer1.RefreshReport();

但是运行后FORM里的reportViewer还是空的,我点数据集,预览数据是可以查询出结果的,请问这是为什么,做法不对吗? WinForm 报表 RDLC --------------------编程问答-------------------- 如何调用存储过程,那要看你选择什么数据源和什么做为载体。参数传值报表也有,请你上网找下这方面的资料。 --------------------编程问答--------------------  reptViewer.ProcessingMode = ProcessingMode.Local;
            reptViewer.LocalReport.ReportPath = @"..\..\ReportParam.rdlc";
            ReportParameter para = new ReportParameter("TestParam", textBox1.Text);
            reptViewer.LocalReport.SetParameters(new ReportParameter[] { para });
            reptViewer.RefreshReport(); --------------------编程问答--------------------
引用 1 楼 qingfeng_wu 的回复:
如何调用存储过程,那要看你选择什么数据源和什么做为载体。参数传值报表也有,请你上网找下这方面的资料。

我是用VS的自带的数据集工具.xsd,选择存储过程后自动生成的FILL方法,但是传参后 没有结果返回到报表中,不知道问题出在哪里,请指教 --------------------编程问答-------------------- 把存储过程换成视图,然后将视图托入.xsd,再试试。 --------------------编程问答-------------------- GenerateMethods换成Get,再试试。不要用Fill --------------------编程问答-------------------- 传到报表里面,传一个表格对象,是根据编号或者其它条件查出来的一个表格对象,传给报表。他会自动帮你到存储过程里面找数据。存储过程的条件(是所有的纪录)! --------------------编程问答--------------------
引用 5 楼 qingfeng_wu 的回复:
GenerateMethods换成Get,再试试。不要用Fill

还是不可,我在报表下边拖入一个 文本框 ,设置value值为 参数 的值,运行后有显示这个 参数,说明参数是传过来了,可是为什么 报表数据 框没有查询的结果 --------------------编程问答-------------------- 所以我才说,你的存储过程是不是所有的数据!传到表报里面的是不是根据条件查询到的数据。

仔细看我说的话。 --------------------编程问答--------------------
引用 8 楼 qingfeng_wu 的回复:
所以我才说,你的存储过程是不是所有的数据!传到表报里面的是不是根据条件查询到的数据。

仔细看我说的话。
额我确实是有点没听明白,有没有联系方式,QQ之类,跟您仔细请教一下 --------------------编程问答-------------------- 表示这个很麻烦,以前使用的时候,将DataSet建立一个DataTable,
里边的字段必须和你查询出来的字段一样(存储过程也一样),
然后拖到RDLC里边,这样查询的时候先清空DataSet再填充(记得输入DataTable名称),
就可以看到数据的,这样搞耦合性很强,但我只发现这个方法了。 --------------------编程问答--------------------
引用 10 楼 icdbow 的回复:
表示这个很麻烦,以前使用的时候,将DataSet建立一个DataTable,
里边的字段必须和你查询出来的字段一样(存储过程也一样),
然后拖到RDLC里边,这样查询的时候先清空DataSet再填充(记得输入DataTable名称),
就可以看到数据的,这样搞耦合性很强,但我只发现这个方法了。



请问有例子吗?我现在也遇到楼主这个问题,死活出不来折线图什么的.... 我扣扣 1597633656 --------------------编程问答-------------------- 有写好的报表程序,但是在家里,我大致说一下操作吧:
右键——添加——新建项——数据集控件
加入一个DataSet1.xsd文件

选择该文件,会有一个"从服务器管理器 和 工具箱 。。。"的一段话,别理,在空白处右键
添加——数据表,这样添加一张空白的数据表DataTable1,右键添加相应的列,
这个结构要和你之后SQL语句查询出来的DataTable要一模一样。

通过向导建立RDLC文件,数据源选择DataSet1.xsd,这样里边的字段、控件直接可以在RDLC上拖了,
方便布局。当然这个时候里边什么数据都没有,当你通过语句查出数据后,将DataSet1.xsd清空,用
新的DataSet变量代之,刷新自然就显示出来了。

要求对应很死,耦合性真大。。。 --------------------编程问答--------------------
引用 5 楼 qingfeng_wu 的回复:
GenerateMethods换成Get,再试试。不要用Fill
不管怎么说反正是折腾出来了,就是屏蔽了getdata方法,用的FILL方法
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,