你的传递参数语句是否正确? CrystalDecisions.Shared.ParameterValues p=new  CrystalDecisions.Shared.ParameterValues();
CrystalDecisions.Shared.ParameterDiscreteValue pp=new CrystalDecisions.Shared.ParameterDiscreteValue();
pp.Value=Mycollection.Value;
p.Add(pp);
r.DataDefinition.ParameterFields[Mycollection.Key.ToString()].ApplyCurrentValues(p);