应该这样设置参数:
ParameterFields paramFields = new ParameterFields ();
ParameterField paramField = new ParameterField ();
ParameterDiscreteValue discreteVal = new ParameterDiscreteValue ();
ParameterDiscreteValue rangeVal = new  ParameterDiscreteValue (); // 第一个参数是具有多个值的离散参数。 // 设置参数字段的名称,它必须
//和报表中的参数相符。
paramField.ParameterFieldName = "yyear"; // 设置第一个离散值并将其传递给该参数。
discreteVal.Value = ddl_year.SelectedItem.Text.ToString();
paramField.CurrentValues.Add (discreteVal);
// 将该参数添加到参数字段集合。
paramFields.Add (paramField); // 第二个参数为区域值。paramField 变量
//被设置为新值,这样,以前的设置就不会被覆盖。
paramField = new ParameterField (); // 设置参数字段的名称,它必须
//和报表中的参数相符。
paramField.ParameterFieldName = "mmonth"; // 设置范围的开始值和结束值并将该范围传递给
//该参数。
rangeVal.Value=ddl_month.SelectedItem.Text.ToString();

paramField.CurrentValues.Add (rangeVal); // 将第二个参数添加到参数字段集合。
paramFields.Add (paramField); // 将参数字段集合放入查看器控件。
CrystalReportViewer1.ParameterFieldInfo = paramFields;