Вам нужно создать новый параметрField и значение для обоих параметров. Ваш текущий код добавляет параметр, изменяет его (меняет имя и значение) и снова добавляет тот же объект. Это должно быть правильно:
{
ReportDocument reportDocument = new ReportDocument();
ParameterFields paramFields = new ParameterFields();
// ParameterDiscreteValue paramDiscreteValue = new ParameterDiscreteValue();
ParameterField paramField = new ParameterField();
ParameterDiscreteValue paramDiscreteValue = new ParameterDiscreteValue();
paramField.Name = "@Dept";
paramDiscreteValue.Value = TextBox1.Text.ToString();
paramField.CurrentValues.Add(paramDiscreteValue);
paramFields.Add(paramField);
paramField = new ParameterField(); // <-- This line is added
paramDiscreteValue = new ParameterDiscreteValue(); // <-- This line is added
paramField.Name = "@Name";
paramDiscreteValue.Value = TextBox2.Text.ToString();
paramField.CurrentValues.Add(paramDiscreteValue);
paramFields.Add(paramField);
CrystalReportViewer1.ParameterFieldInfo = paramFields;
reportDocument.Load(Server.MapPath("CrystalReport.rpt"));
CrystalReportViewer1.ReportSource = reportDocument;
reportDocument.SetDatabaseLogon("sa", "sa", "OPWFMS-7KYGZ7SB", "test");
}
EDIT: ошибка, упомянутая в комментарии, вероятно, потому, что в коде есть два определения переменной paramField или paramDiscreteValue. В одном методе c # вы не можете определить переменную с тем же именем более одного раза. Попробуйте код выше, поскольку он написан, и если вы все еще получаете ошибку компилятора, вставьте здесь полный текст ошибки.