【问题标题】:Missing Parameter Values缺少参数值
【发布时间】:2012-05-08 12:09:07
【问题描述】:

我收到错误“缺少参数值”。我浏览了许多帖子并尝试了所有帖子。

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;

    }

【问题讨论】:

    标签: asp.net crystal-reports


    【解决方案1】:

    确保所有参数都是 Crystal 期望的类型。

    有时传递错误类型的参数会导致“缺少参数”错误。例如,为整数参数传递十进制值。

    【讨论】:

    • 是的,我确实在日期参数中犯了错误。从那以后,我将其更改为 pparms.periodstart = DateTime.ParseExact("20120316", "yyyymmdd", System.Globalization.CultureInfo.CurrentCulture); pparms.periodend = DateTime.ParseExact("20120331", "yyyymmdd", System.Globalization.CultureInfo.CurrentCulture);
    • 但是并没有解决问题。仍然出现同样的错误。
    • 我的意思是,在您的水晶报表中,请确保报表期望的参数类型与您在代码中传递给它的类型相同。
    • 水晶报表使用一个 T-SQL 存储过程,它接受 3 个输入参数 @startdate date,@enddate date,@empno varchar(7)。第 4 个参数来自晶体本身 - 检查 nbr 并且是数字类型。从 asp.net 我只能传递一个日期时间而不是日期。不确定这是否是问题所在。我不知道如何从 asp.net 传递日期。此外,asp.net 中的参数名称是否必须与存储过程和 Crystal 中的参数名称匹配?感谢所有帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 2016-02-14
    • 2011-02-12
    • 1970-01-01
    • 2023-03-05
    • 2018-06-18
    相关资源
    最近更新 更多