报表怎么传递参数啊

oN5GrzoN 2011-07-14 05:11:58
select * from students where class=?

比如有一个学生表,查在某班的学生。
在报表的数据源里写好SQL语句,是固定的,这个class=1这样的参数,怎么传进去啊

代码在哪写
...全文
204 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
阿泰 2011-07-15
  • 打赏
  • 举报
回复
几盒回复。。囧。。
阿泰 2011-07-15
  • 打赏
  • 举报
回复
看了几盒回复,着实有点出乎意料。。

首先确定楼主的命题是什么。
我们看楼主的需求:
[QUOTE]
select * from students where class=?
比如有一个学生表,查在某班的学生。
在报表的数据源里写好SQL语句,是固定的,这个class=1这样的参数,怎么传进去啊
[/QUOTE]

而楼主实际在报表的向导中,根本没看到哪里可以输入参数。所以才产生了这么个问题。

那么,报表参数是怎么来的呢?
在这里



怎么在代码中把参数传递进去呢


2:看到这里,问题也来了,这个参数好像跟dateset毫无关系嘛!
对的,暂时可以理解成没关系。

我们来看报表时怎么接收数据的:
DataTable dt = GetData();
ReportDataSource rds = new ReportDataSource("DataSet1_DataTable1", dt);
ReportViewer1.LocalReport.DataSources.Clear();
ReportViewer1.LocalReport.DataSources.Add(rds);
ReportViewer1.LocalReport.Refresh();

看到了么,是可以直接传datatable进去的,而你的数据,完全可以在这里过滤好了再传进去。
select * from students where class=?

3:最后,怎么把SQL中的参数,跟报表中的参数结合起来呢??

这才是关键问题。
假设,我们这里class=1,。
那么使用select * from students where class=1生成datatable,完成了数据的过滤
那么我们给参数一个值,注意不应该是1了,而应该是1对应的实际显示值,如:“1年级”

至于这两部分代码怎么结合起来,就不用我说了吧。。


本回复图片引用自:
http://archive.cnblogs.com/a/1357705/
RDLC一篇不错的文章,参考
http://blog.csdn.net/keisuoy/article/details/1731528
oN5GrzoN 2011-07-15
  • 打赏
  • 举报
回复
A data source instance has not been supplied for the data source 'GISDataSet_ContrlPoint'.
oN5GrzoN 2011-07-15
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 babyt 的回复:]

看了几盒回复,着实有点出乎意料。。

首先确定楼主的命题是什么。
我们看楼主的需求:
引用
select * from students where class=?
比如有一个学生表,查在某班的学生。
在报表的数据源里写好SQL语句,是固定的,这个class=1这样的参数,怎么传进去啊


而楼主实际在报表的向导中,根本没看到哪里可以输入参数。所以才产生了这么个问题。

……
[/Quote]
虽然我打算放弃报表,用GridView,但看您如此认真的回复,把分就给你了
lslywy 2011-07-14
  • 打赏
  • 举报
回复
按button1,显示出来1班的学生,按button2,显示2班的学生,

直接在 button1 click事件里 select ... class=1 ;
button2 click事件里 select ... class=2 ;
ziyeage 2011-07-14
  • 打赏
  • 举报
回复
你在前台绑定的数据源????

那你试试
select * from students where class='<%=class%>'

后台
protected string class;
button1 动作
{
class="1";
}
button2动作
{class="2"
}这样看看吧。
ziyeage 2011-07-14
  • 打赏
  • 举报
回复
汗一个啊。。。。

void bind(string id)
{
string str="select * from students where class='"+id+"'";
}

button1 的动作。
bind("1");
button2的动作
bind("2");

好好看看C的基础吧。
zhangwuji156 2011-07-14
  • 打赏
  • 举报
回复
http://d.download.csdn.net/down/2393164/ynsky
saiya520 2011-07-14
  • 打赏
  • 举报
回复
select t.* from tableName t where t.fieldName = '{argName}'
oN5GrzoN 2011-07-14
  • 打赏
  • 举报
回复
不用DataSet文件,直接在CS文件里用adpter.fill(dataset)出来的DataSet行不行啊?
oN5GrzoN 2011-07-14
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 sp1234 的回复:]

换句话说,DataSet不但给报表,也可以给其它程序使用。如果你自己感觉精神压力很重,那么删除你的报表部分,先搞好DataSet查询部分,看看能不能得到一个DataSet数据集合。调试清楚之后,把它封装为一个简单的方法,然后再开始考虑报表。
[/Quote]
完全听不懂啊,我用SQL有些年了,SQL语句语句没问题,我用DataSet绑定到GridView也有些年了(虽然以前是Borland C++ Builder 6.0上的,也差不多)。就是没绑定过报表吧,大侠给个例子?
oN5GrzoN 2011-07-14
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 sp1234 的回复:]

形成dataset跟报表毫无关系,现有DataSet数据集,然后设置给报表的属性。你给他俩纠结在一起,反而自己糊涂了。
[/Quote]
这不是我要纠结的,我两本书上都这么做啊……
  • 打赏
  • 举报
回复
换句话说,DataSet不但给报表,也可以给其它程序使用。如果你自己感觉精神压力很重,那么删除你的报表部分,先搞好DataSet查询部分,看看能不能得到一个DataSet数据集合。调试清楚之后,把它封装为一个简单的方法,然后再开始考虑报表。
  • 打赏
  • 举报
回复
形成dataset跟报表毫无关系,现有DataSet数据集,然后设置给报表的属性。你给他俩纠结在一起,反而自己糊涂了。
oN5GrzoN 2011-07-14
  • 打赏
  • 举报
回复
求求你们了,你们明白我的问题在哪儿吗?
我一步一步说行不?
书上说,新建个"报表向导"文件,再新建dataset文件,配数据源什么的,然后在aspx页面上放个viewer控件,齐活儿了,运行!报表出来了!!!!!!!!!!!

你们说的SQL语句什么的,都是好写的,固定的,写死的!!!!!
我不知道在哪儿,有什么函数改变它!!!!!
子夜__ 2011-07-14
  • 打赏
  • 举报
回复
select * from students where class='"+Count+"'

@C_ID 这种比较好些。
showenxxx 2011-07-14
  • 打赏
  • 举报
回复
select *
from students
where class = @Class

然后加参数,或者用存储过程
oN5GrzoN 2011-07-14
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 lopyn 的回复:]

给数据绑定数据源的时候 就已经把这个参数用过了
[/Quote]
但只能绑定一次呀,都是下一步、下一步的绑定的,绑定完是啥就是啥了,程序运行的时候咋改变呀
kinglw001 2011-07-14
  • 打赏
  • 举报
回复
http://www.cnblogs.com/JamesLi2015/archive/2010/01/30/1660086.html
lopyn 2011-07-14
  • 打赏
  • 举报
回复
给数据绑定数据源的时候 就已经把这个参数用过了
加载更多回复(2)

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧