RDLC动态绑定问题

djk2003 2009-05-25 10:59:56
SqlDataSource1.SelectCommand = "SELECT KY_JC.JCID, KY_JC.CGLB, KY_JC.CGMC, KY_JC.CBSMC, KY_JC.CBH, KY_JC.CBRQ, KY_JC.JB, KY_JCZB.XM, KY_JCZB.BM, KY_JCZB.CDZS, KY_JCZB.FZ FROM KY_JC INNER JOIN KY_JCZB ON KY_JC.JCID = KY_JCZB.JCID where BM=" + "'"+Session["bm"]+"'";


ReportViewer1.DataBind();
ReportViewer1.LocalReport.Refresh();


这样写之后出现了:尚未为数据源“DataSet2_DataTable1”提供数据源实例。 这个错误信息。我记得原来这么用好像可以,VS2005,请问高手这里应该怎么解决?
...全文
306 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
djk2003 2009-06-04
  • 打赏
  • 举报
回复
没人来,把分散了,结贴!
djk2003 2009-05-26
  • 打赏
  • 举报
回复
希望有更多人提出新的解决方案,我来散分。楼上的提供的是最常规网上最常见的解决方式。我的方法已经应用,没有问题。
龙宜坡 2009-05-26
  • 打赏
  • 举报
回复
请使用ReportViewer1.LocalReport.DataSources.Add方法增加数据源!
光宇广贞 2009-05-26
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 djk2003 的回复:]
问题结局了,我自己的问题。不过我这种写法网上还没有见到,不知道算不算自创,真的是我自己想出来的。把我个人网站上的总结贴下来共享,我出错的原因就是我提示里面说到的,报表数据源不能清除而我清除了:


asp.net中轻量级报表RDLC的动态数据绑定



asp.net中的轻量级报表RDLC我最近一直在研究。数据源的动态绑定我一直觉得过于复杂,网上提供的都是以下模式:

//设置为本地报表
// this.Repo…
[/Quote]

恭喜楼主,贺喜楼主……这类问题真的……只有自己才能看得懂……呵呵……因为几乎不存在代码的问题……而是其它的问题……
djk2003 2009-05-26
  • 打赏
  • 举报
回复
问题结局了,我自己的问题。不过我这种写法网上还没有见到,不知道算不算自创,真的是我自己想出来的。把我个人网站上的总结贴下来共享,我出错的原因就是我提示里面说到的,报表数据源不能清除而我清除了:

asp.net中轻量级报表RDLC的动态数据绑定



asp.net中的轻量级报表RDLC我最近一直在研究。数据源的动态绑定我一直觉得过于复杂,网上提供的都是以下模式:

//设置为本地报表
// this.ReportViewer1.ProcessingMode = ProcessingMode.Local;(可选)
//指定报表路径
ReportViewer1.LocalReport.ReportPath = MapPath("Report1.rdlc");
// ReportViewer1.LocalReport.DataSources.Clear();(可选)
DataSet ds= Getdata();
//设置数据源
ReportDataSource rds = new ReportDataSource("DataSet1_Shop", ds.Tables[0]);
ReportViewer1.LocalReport.DataSources.Add(rds);
ReportViewer1.LocalReport.Refresh();

事实上,报表显示格式是固定的。那也就是说报表原来的数据源可以不作大的改动,理论上直接修改查询就可以了。

但是网上一直找不到这种解决方式,我经过多次测试,发现这样解决是比较简洁的(VS 2005团体开发版下测试,数据库平台为SQL Server 2005,操作系统为Windows XP sp3):

//修改数据源

SqlDataSource1.SelectCommand = "SELECT KY_JC.JCID, KY_JC.CGLB, KY_JC.CGMC, KY_JC.CBSMC, KY_JC.CBH, KY_JC.CBRQ, KY_JC.JB, KY_JCZB.XM, KY_JCZB.BM, KY_JCZB.CDZS, KY_JCZB.FZ FROM KY_JC INNER JOIN KY_JCZB ON KY_JC.JCID = KY_JCZB.JCID where BM=" + "'"+Session["bm"]+"'";
//重新绑定

ReportViewer1.DataBind();

//刷新报表

ReportViewer1.LocalReport.Refresh();

这里需要注意的是,如果把清楚报表数据源的代码加上就会出错,因为没有添加新的数据源,所以不需要清除,直接重新绑定即可。





光宇广贞 2009-05-26
  • 打赏
  • 举报
回复
顶一个。

62,074

社区成员

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

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

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

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