水晶报表调用带参数的存储过程传入的参数无效

szxzwang 2009-07-25 11:00:06
如题,我的代码如下:
存储过程:
CREATE PROCEDURE [dbo].[GetF004]
@RoleID nvarchar(50)=''

AS
select * from f005 where RoleID=@RoleID
GO

aspx.cs代码:
TableLogOnInfo logOnInfo = new TableLogOnInfo();
ReportDocument objRD = new ReportDocument();

logOnInfo.ConnectionInfo.ServerName = "HCss";

logOnInfo.ConnectionInfo.Password = "www";

logOnInfo.ConnectionInfo.DatabaseName = "TestDB";

logOnInfo.ConnectionInfo.UserID = "sa";

string sPath = Server.MapPath("CrystalReport4.rpt");

objRD.Load(sPath);


objRD.Database.Tables[0].ApplyLogOnInfo(logOnInfo);

//设置参数
ParameterFields parameterFields = CrystalReportViewer1.ParameterFieldInfo;
ParameterField parameterField = parameterFields["@RoleID"];

string empValue = "ADMIN";

ParameterDiscreteValue parameterDiscreteValue = new ParameterDiscreteValue();
parameterDiscreteValue.Value = empValue;
parameterField.CurrentValues.Add(parameterDiscreteValue);

执行上面的代码后,无论我传入的参数是什么,都查询不出记录来。
但我在查询分析器里面测过,传入"ADMIN"应该是有记录的。

那位大虾指点一下,为何参数传入无效?


...全文
287 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
szxzwang 2009-07-27
  • 打赏
  • 举报
回复
搞定了,谢谢Babyt,vipyoumay,springbell.应该是数据库连接的问题。结帖
阿泰 2009-07-27
  • 打赏
  • 举报
回复
你参考一下这个吧
http://topic.csdn.net/u/20090626/17/8090bf70-bed9-41ac-9e09-c0a6a7ab4cb8.html

然后加上
//设置参数
objRD.SetParameterValue("@RoleID","ADMIN");

这一行就可以了。

我实际测试过了,是可以的
szxzwang 2009-07-27
  • 打赏
  • 举报
回复
Hi Babyt,
我发现问题出在这一句上:objRD.Database.Tables[0].ApplyLogOnInfo(logOnInfo);
如何没有这一句,他会先跳出来一个对话框,让输入一个数据库密码,然后,结果就有了;
如果有这句,那对话框不出来了,但就没有结果了。
不知道如何处理?不会让用户都输入数据库的密码吧?
szxzwang 2009-07-27
  • 打赏
  • 举报
回复
一样的。两个结果在查询分析器里面是一样的。
阿泰 2009-07-27
  • 打赏
  • 举报
回复

exec GetF004 'Admin' 和exec GetF004 'ADMIN'
大小写不同的时候返回结果一样吗?
szxzwang 2009-07-27
  • 打赏
  • 举报
回复
Hi Babyt,
谢谢你的回复。
刚才试了一下,还是没查出结果来。
我在查询分析里试了 exec GetF004 'Admin',是有记录的。
不知道是什么原因?
阿泰 2009-07-26
  • 打赏
  • 举报
回复
TableLogOnInfo logOnInfo = new TableLogOnInfo(); 
ReportDocument objRD = new ReportDocument();

logOnInfo.ConnectionInfo.ServerName = "HCss";

logOnInfo.ConnectionInfo.Password = "www";

logOnInfo.ConnectionInfo.DatabaseName = "TestDB";

logOnInfo.ConnectionInfo.UserID = "sa";

string sPath = Server.MapPath("CrystalReport4.rpt");

objRD.Load(sPath);


objRD.Database.Tables[0].ApplyLogOnInfo(logOnInfo);

//设置参数
objRD.SetParameterValue("@RoleID","ADMIN");
CrystalReportViewer1.ReportSource = objRD;
wuyq11 2009-07-26
  • 打赏
  • 举报
回复

ParameterFields paramFields = crystalReportViewer1.ParameterFieldInfo;
ParameterField paramMonth = paramFields[""];
ParameterValues curValues=paramCompany.CurrentValues;
ParameterDiscreteValue discreteValue = new ParameterDiscreteValue();
discreteValue.Value = "";
curValues.Add(discreteValue);

crystalReportViewer1.ParameterFieldInfo = paramFields;
使用公式实现查询参考
参考
szxzwang 2009-07-26
  • 打赏
  • 举报
回复
不好意思,忘讲环境了,我用的是vs2005 + sql server2000
帅虫哥 2009-07-26
  • 打赏
  • 举报
回复
我写了个可以用的你看看先
CrystalDecisions.Web.CrystalReportSource crreport = new CrystalDecisions.Web.CrystalReportSource();
crreport.Report.FileName = "account_bar.rpt";
CrystalDecisions.Shared.ParameterFields paramfields = new CrystalDecisions.Shared.ParameterFields();
CrystalDecisions.Shared.ParameterField parafield1 = new CrystalDecisions.Shared.ParameterField();
CrystalDecisions.Shared.ParameterValues paravalues1 = new CrystalDecisions.Shared.ParameterValues();
CrystalDecisions.Shared.ParameterDiscreteValue paravalue1 = new CrystalDecisions.Shared.ParameterDiscreteValue();
paravalue1.Value = Session["user_name_123"];
paravalues1.Add(paravalue1);
parafield1.Name = "@user_name";
parafield1.CurrentValues = paravalues1;
paramfields.Add(parafield1);

CrystalReportViewer1.ParameterFieldInfo = paramfields;
CrystalReportViewer1.ReportSource = crreport;
springbell 2009-07-26
  • 打赏
  • 举报
回复
去图表区提问,或者直接给一个高手写私信:阿泰(babyt)。星期一上班的时候应该会给你回复
szxzwang 2009-07-25
  • 打赏
  • 举报
回复
不好意思,少了一行代码:
CrystalReportViewer1.ReportSource = objRD;
内容概要:本文系统研究了在强弱电网适配场景下,构网型(GFM)与跟网型(GFL)逆变器并联系统的协同控制逻辑及其暂态动态行为,重点依托Simulink仿真平台构建混合并网系统模型,深入分析两类逆变器在不同电网强度条件下的交互特性、频率响应机制、稳定性表现及抗扰能力。研究涵盖分层控制架构设计、异构控制策略对比、频率扰动响应规律以及多工况暂态性能评估,探讨了GFM与GFL逆变器在功率支撑、电压频率调节和系统稳定性方面的互补性与协同机制,旨在提升高比例新能源接入背景下并网系统的适应性、鲁棒性与动态性能。; 适合人群:具备电力电子、新能源并网、自动控制或电力系统仿真等相关专业知识背景,从事新型电力系统控制、微电网运行、逆变器控制策略研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①深入理解构网型与跟网型逆变器在强弱电网中的协同工作机理与动态交互特性;②掌握异构逆变器并联系统的建模方法、协同控制策略设计与暂态仿真分析流程;③为高渗透率新能源系统的稳定性分析、控制优化及工程应用提供理论依据和技术参考。; 阅读建议:建议结合Simulink仿真实例进行动手实践,重点关注控制策略的实现细节、参数整定方法及多工况仿真结果的动态响应分析,同时可参考文中提及的相关博士论文复现案例以深化对理论机制的理解。

4,818

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 图表区
社区管理员
  • 图表区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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