C# 如何解决;参数字段和参数字段当前值的类型不兼容;晶内参数

C# 如何解决;参数字段和参数字段当前值的类型不兼容;晶内参数,c#,crystal-reports,C#,Crystal Reports,我在VS2008中将参数传递给Crystal Reports时遇到上述错误 我就是这样做的: reportPath = GetReportPath(ReportType); CRReport.Load(reportPath); CrystalReportViewer1.ReportSource = CRReport; AddParameterToReport("DocumentID", DocumentID); ConnectionInfo connectionInfo = ConnInfo(

我在VS2008中将参数传递给Crystal Reports时遇到上述错误

我就是这样做的:

reportPath = GetReportPath(ReportType);
CRReport.Load(reportPath);
CrystalReportViewer1.ReportSource = CRReport;
AddParameterToReport("DocumentID", DocumentID);

ConnectionInfo connectionInfo = ConnInfo();
SetDBLogonForReport(connectionInfo, CRReport);
SetDataSetForMultipleSubReport(connectionInfo, CRReport);
AddParameter()

应用CurrentValues()

ParameterFields crParameterFields=CRReport.ParameterFields;
ParameterField crParameterField=新的ParameterField();
尝试
{
//循环遍历所有部分以查找所有报表对象
foreach(参数字段crParameterFields中的参数字段crParameterField1)
{
对于(int i=0;i
在突出显示的行中获取上述错误

谁能帮我解决这个问题

我的Crystal报告中只有on参数字段,如下所示


我们使用Crystal Reports进行所有报告,我们从未像您尝试的那样向报告发送参数。我们只需设置参数值,您似乎正在添加参数,而不是引用现有参数

CRReport.SetParameterValue("DocumentID", DocumentID);

上述错误是由于crystal report中的值类型不匹配导致的。一旦我更改,它就可以正常工作

我所做的是 如:
在crystal report中,我将值类型指定为number。但在传递时,我传递了字符串类型的textbox值。因此,我在crystal report中将值类型更改为string,并将字符串作为参数发送,从而得到预期的解决方案。

检查报告中的参数类型。。 并与你经过的位置相匹配。 我也面临同样的问题。通过比较两端来解决这个问题

ParameterFields crParameterFields = CRReport.ParameterFields;
ParameterField crParameterField = new ParameterField();

try
{
    // loop through all the sections to find all the report objects 
    foreach (ParameterField crParameterField1 in crParameterFields)
    {
        for (int i = 0; i < CRReport.ParameterFields.Count; i++)
        {
            ParameterValues CrParaVals = new ParameterValues();
            DataDefinition CrDataDef = CRReport.DataDefinition;
            ParameterFieldDefinitions PFDefs = CrDataDef.ParameterFields;
            crParameterFields = CrystalReportViewer1.ParameterFieldInfo;
            crParameterField = crParameterFields[i];
            CrParaVals = crParameterField.CurrentValues;

            CRReport.DataDefinition.ParameterFields[i].ApplyCurrentValues(CrParaVals);
        }
    }
}
catch (Exception ex)
{
    ex = null;
}
CRReport.SetParameterValue("DocumentID", DocumentID);