c# ReportViewer 报表 绑定带存储过程的数据源不显示

问题描述

我用的是VS2010自带的ReportViewer,绑定存储过程。我发现直接绑定表或者存储过程都可以正常显示数据源。但是,如果存储过程中有创建的临时表,那么就不显示数据源了。1、在绑定存储过程的时候,选择完存储过程,点击确定保存之后。【数据源】里边是空的,【可用数据集】里边也是空的,什么都不显示。是什么原因?2、下边是我的存储过程:大概的意思就是创建一个临时表,把查询的数据存临时表里,在更新临时表。如果加上红色框里边的内容,问题1里边的数据集就不出来了。如果注释掉红色框里的内容,报表的数据源就可以出来。是什么问题?怎么解决?

解决方案

解决方案二:
你写存储过程要返回类似dataset或是datatable才行;你update的话那是更新数据,返回的是影响行数。
解决方案三:
所以你想更新的话,把你的更新语句放到查询语句的上面,就可以了。
解决方案四:
如果你的SQL是2005及以上版本可以改用表变量代代替临时表
解决方案五:
1楼,我更新语句下方还有个查询语句呀。查询语句返回的就是dataset或是datatable。
解决方案六:
引用4楼nyyb2008的回复:

1楼,我更新语句下方还有个查询语句呀。查询语句返回的就是dataset或是datatable。

但是接下来你就使用update了。
解决方案七:
用表变量测试:ALTERPROCEDUREForTestASBEGIN--SETNOCOUNTONaddedtopreventextraresultsetsfrom--interferingwithSELECTstatements.SETNOCOUNTON;--InsertstatementsforprocedurehereDECLARE@tableTABLE([id][decimal](18,0),[loginName][nchar](20)NOTNULL,[realname][nchar](10)NOTNULL,[DepartmentId][decimal](18,0)NOTNULL,[Tel1][nchar](20)NULL,[Tel2][nchar](20)NULL,[Email][nchar](40)NULL,[DutyID][decimal](18,0)NOTNULL,[password][nchar](32)NOTNULL,[lastLoginTime][datetime]NULL,[lastOnlineTime][datetime]NULL)INSERTINTO@table(id,loginName,realname,DepartmentId,Tel1,Tel2,Email,DutyID,password,lastLoginTime,lastOnlineTime)SELECTid,loginName,realname,DepartmentId,Tel1,Tel2,Email,DutyID,password,lastLoginTime,lastOnlineTimeFROMdbo.UsersUPDATE@tableSETid=id*2SELECT*FROM@tableENDGO

解决方案八:
楼上,我是先创建临时表,在把查询的数据存放在临时表里边。然后在update更新。更新完了之后,还有个select* from#temp的查询语句。就算是改成selectYb_user_idfrom#temp也没用啊。但是把蓝色的注释了就好了
解决方案九:
引用7楼nyyb2008的回复:

楼上,我是先创建临时表,在把查询的数据存放在临时表里边。然后在update更新。更新完了之后,还有个select* from#temp的查询语句。就算是改成selectYb_user_idfrom#temp也没用啊。但是把蓝色的注释了就好了

理论上来说,那就没上面问题了。有一点提示你一下,在存储过程使用临时表,你在查询返回数据后要删除的DROPTABLE#temp
解决方案十:
OK,问题解决了。正如6楼兄弟说的那样。要把临时表改成表变量才可以。改了下图里边的一句话,(临时表改成表变量)果然就好了。不过不明白表变量是什么东西呀。。。。。
解决方案十一:
临时表在存储过程执行结束后就失效了,只能在存储过程内部用,不能查询之后返回结果集
解决方案十二:
10楼,临时表也可以返回结果集的哦。我在程序内部使用程序调用图片上的这个存储过程,就可以返回dataset数据集。我把它绑定在grideview里边显示呀。
解决方案十三:
有没有人可以帮助我,在不改变存储过程的情况下,将带有临时表的存储过程的数据集绑定到Report上?

时间: 2024-08-03 16:51:18

c# ReportViewer 报表 绑定带存储过程的数据源不显示的相关文章

C# 水晶报表如何调用存储过程,不知什么原因都显示不出

问题描述 代码如下:ReportDocumentMyDoc=newReportDocument();MyDoc.Load("D:\VC#\CrystallExecuteStored\CrystallExecuteStored\CrystallStored.rpt");crystalReportViewer1.ReportSource=MyDoc;ParameterValuesMyParameterValues=newParameterValues();ParameterDiscrete

Crystal Reports 和sql-server共同进行报表的开发--存储过程-实践

server|存储过程 Crystal Reports 和sql-server共同进行报表的开发 1:Crystal Reports功能自述        Crystal Reports 用于处理数据库,帮助用户分析和解释重要信息.使用 Crystal Reports 可以方便地创建简单报表,同时它也提供了创建复杂或专用的报表所需的整套工具.         创建所能想象的任何报表        Crystal Reports 几乎可以从任何数据源生成您需要的报表.内置报表专家在您生成报表和完成

读取EXCEL内容并和水晶报表绑定显示,出问题了,请教高手,谢谢

问题描述 以下是读取EXCEL内容并和水晶报表绑定显示,之前做了一个和DataGrid绑定没有问题.stringstrcon="Provider=Microsoft.Jet.OLEDB.4.0;DataSource="+filepath+";ExtendedProperties='Excel8.0;HDR=yes;IMEX=1';";OleDbConnectionmycon=newOleDbConnection(strcon);stringstrcom="

在Silverlight中动态绑定页面报表(PageReport)的数据源

ActiveReports 7中引入了一种新的报表模型--PageReport(页面布局报表),这种报表模型又细分了两种具体显示形式: o    固定页面布局报表模型(FPL)是ActiveReports 7中首创的一种 .NET报表模型,通过这种模型可以非常方便地设计出拥有复杂格式的报表模板.您只需定义好页面大小,然后以一种可视化的方式添加需要的控件并设置数据填充方式,剩下的工作将由报表引擎自动完成. o    连续页面布局报表模型(CPL)主要通过数据区域来控制报表的布局,并能自动实现数据分

reportviewer报表的刷新

问题描述 reportviewer报表的刷新 报表加载数据就要刷新一下this.reportViewer1.RefreshReport();把这段代码放在tick时间里面,就会一直闪.闪,请问怎么解决??? 解决方案 不如加个延迟时间看看! 解决方案二: http://wenku.baidu.com/link?url=NkZGVXuKHnl222qaYcH_teqmF-KUBZ-nz1VTyFxsgD8DKmNobhS_oKCmLhwgm8Vu2WoxxnXIpQOo8ZSQkT3wWWJMLk

第一次发求大婶=-wince combobox绑定了数据源,显示为name,值为id,怎么操作~

问题描述 wince combobox绑定了数据源,显示为name,值为id,怎么操作~ wince combobox绑定了数据源,显示为name,值为id,怎么操作~ 解决方案 设置datamember和valuemamber属性

gridview绑定数据源不显示列,就一直是column1、2、3三列

问题描述 gridview绑定数据源不显示列,就一直是column1.2.3三列 解决方案 解决方案二:这个要看你代码好吧解决方案三:你没有绑定成功,自动生成的列也没有去掉解决方案四:grid.datasource=dt;//你的数据源grid.databind();//绑定 解决方案五:引用3楼Hsuifengershi的回复: grid.datasource=dt;//你的数据源grid.databind();//绑定 +1猜测楼主像使用winform程序一样,只指定了数据源,没执行绑定操作

c# combobox绑定了数据源,显示为name,值为id

问题描述 c# combobox绑定了数据源,显示为name,值为id c# combobox绑定了数据源,显示为name,值为id, 1.当选择用户选择name时,获取id值 2,当用户输入值时,与数据源的name进行匹配,匹配成功则,获取相应id,否则提示用户没有该数据,,怎么做 dataset dscommon =new dataset(); dscommon= ora.dselect("select pdline_id,pdline_name from sys_pdline")

[水晶报表]RECORDNUMBER应用之控制每页显示行数及隔行换色.

控制|水晶报表|显示 经常有人问到如何限定每页显示行数的限定,还看到有人用拉高字段的方法.呵呵 下面简单说一下,其中公式用的是 Crystal语法,数据库用的是水晶报表自己带的Access数据库我以Orders表为例. 首先选几个字段作个简单的报表,,画个小格子,预览一下.每行的数据显示满页,共21页 我们限定每页显示10行 在设计节上点右键选"节专家",操作"详细资料"节.后面几步依图所示,加一个公式控制页面显示 再预览的时候,就发现已经是84页了,如我们所要:)