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

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"应该是有记录的。

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


...全文
291 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;
「LLM那些事」系列第 4 篇《上下文窗口的边界》,文章连接:https://blog.csdn.net/houwenjin/article/details/163999753。 演示什么:在「预测」Sheet 的黄色格子里输入一句话(默认「来泡一杯」),四个「模型」——分别只统计最后 1 / 2 / 3 / 4 个字的 n-gram 查表——同时预测下一个字。同一个输入,看的上下文越长,候选越少、预测越确定: ┌────────────────┬──────────┬───────────────┬──────┐ │ 只看最后几个字 │ 用的前缀 │ 候选下一字数 │ 预测 │ ├────────────────┼──────────┼───────────────┼──────┤ │ 1 个 │ 杯 │ 3(茶/子/水) │ 模糊 │ ├────────────────┼──────────┼───────────────┼──────┤ │ 2 个 │ 一杯 │ 2(茶/水) │ 收窄 │ ├────────────────┼──────────┼───────────────┼──────┤ │ 3 个 │ 泡一杯 │ 1(茶) │ 确定 │ ├────────────────┼──────────┼───────────────┼──────┤ │ 4 个 │ 来泡一杯 │ 1(茶) │ 确定 │ └────────────────┴──────────┴───────────────┴──────┘

4,818

社区成员

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

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