Asp.net 缺少参数值
我收到错误“缺少参数值”。我看过很多帖子,都试过了Asp.net 缺少参数值,asp.net,crystal-reports,Asp.net,Crystal Reports,我收到错误“缺少参数值”。我看过很多帖子,都试过了 protected void Page_Load(object sender, EventArgs e) { PaystubParms pparms = new PaystubParms(); pparms.periodstart = 20120316; pparms.periodend = 20120331; pparms.empno = "91065";
protected void Page_Load(object sender, EventArgs e)
{
PaystubParms pparms = new PaystubParms();
pparms.periodstart = 20120316;
pparms.periodend = 20120331;
pparms.empno = "91065";
pparms.checknbr = 2306;
PaystubCrystalReportSource.ReportDocument.SetDatabaseLogon("Abra_Reports","123456","Tsysmas","AbraHrms_Live");
ParameterField pfield0 = PaystubCrystalReportViewer.ParameterFieldInfo[0];
ParameterDiscreteValue pfield0val = new ParameterDiscreteValue();
pfield0val.Value = pparms.periodstart;
pfield0.CurrentValues.Add(pfield0val);
//-------------------------------------------------------------------------
ParameterField pfield1 = PaystubCrystalReportViewer.ParameterFieldInfo[1];
ParameterDiscreteValue pfield1val = new ParameterDiscreteValue();
pfield1val.Value = pparms.periodend;
pfield1.CurrentValues.Add(pfield1val);
//-------------------------------------------------------------------------
ParameterField pfield2 = PaystubCrystalReportViewer.ParameterFieldInfo[2];
ParameterDiscreteValue pfield2val = new ParameterDiscreteValue();
pfield2val.Value = pparms.empno;
pfield2.CurrentValues.Add(pfield1val);
//-------------------------------------------------------------------------
ParameterField pfield3 = PaystubCrystalReportViewer.ParameterFieldInfo[3];
ParameterDiscreteValue pfield3val = new ParameterDiscreteValue();
pfield3val.Value = pparms.periodstart;
pfield3.CurrentValues.Add(pfield1val);
PaystubCrystalReportSource.ReportDocument.SetParameterValue(0, pfield0.CurrentValues.Add(pfield0val));
*******************************************************************
I have also tried
PaystubCrystalReportSource.ReportDocument.SetParameterValue(0, pparms.periodstart);
*******************************************************************************
PaystubCrystalReportSource.ReportDocument.SetParameterValue(1, pfield1.CurrentValues.Add(pfield1val));
PaystubCrystalReportSource.ReportDocument.SetParameterValue(2, pfield2.CurrentValues.Add(pfield2val));
PaystubCrystalReportSource.ReportDocument.SetParameterValue(3, pfield3.CurrentValues.Add(pfield3val));
PaystubCrystalReportViewer.ReportSource = PaystubCrystalReportSource;
}
确保所有参数都是Crystal期望的类型
有时,传递错误类型的参数可能会导致缺少参数错误。例如,为整数参数传递十进制值。是的,我确实在日期参数中犯了错误。从那以后,我将其添加到pparms.periodstart=DateTime.ParseExact20120316,yyyymmdd,System.Globalization.CultureInfo.CurrentCulture;pparms.periodend=DateTime.ParseExact20120331,yyyymmdd,System.Globalization.CultureInfo.CurrentCulture;但这并没有解决问题。仍然收到相同的错误。我的意思是,在crystal报表中,确保报表所需的参数类型与您在代码中传递给它的参数类型相同。crystal报表使用T-SQL存储过程,该存储过程接受3个输入参数@startdate date、@enddate date、@empno varchar7。第四个参数来自crystal本身-检查nbr,类型编号为。从asp.net中,我只能传递日期时间,不能传递日期。不确定这是否是问题所在。我不知道如何从asp.net传递日期。另外,asp.net中的参数名称是否必须与存储过程和Crystal中的参数名称匹配?谢谢你的帮助。