Passing parameters to Crystal Reports at runtime with c#

If you take a look at the end of the Page_Load function, we have called a method ReportParameter(). This method will actually add/send the parameters to our report.

using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared; 
public partial class _Default : System.Web.UI.Page
{
    SqlConnection con = new SqlConnection(ConfigurationManager.AppSettings["aaa"]);
    Class1 dbc = new Class1();

    protected void Page_Load(object sender, EventArgs e)
    {
        CrystalReportViewer1.LogOnInfo[0].ConnectionInfo.ServerName = "nic";
        CrystalReportViewer1.LogOnInfo[0].ConnectionInfo.UserID = "sa";
        CrystalReportViewer1.LogOnInfo[0].ConnectionInfo.Password = "sa";
        CrystalReportViewer1.LogOnInfo[0].ConnectionInfo.DatabaseName = "abcde";
        ReportParameter();
    }
    private void ReportParameter()
    {
        CrystalReportViewer1.RefreshReport();
        ParameterFields paramFields = new ParameterFields();
        ParameterField pfItemYr = new ParameterField();
        pfItemYr.ParameterFieldName = "year"; //year is Crystal Report Parameter name.
        ParameterDiscreteValue dcItemYr = new ParameterDiscreteValue();
        dcItemYr.Value = DropDownList1.SelectedValue;
        pfItemYr.CurrentValues.Add(dcItemYr);
        paramFields.Add(pfItemYr);
        CrystalReportViewer1.ParameterFieldInfo = paramFields;
    }
}

Comments