title: Passing parameter programmatically and displaying in crystal reports
body: <p>I have a crystal report in which I set the datasource and parameter programmatically. This works when I just display regular data in the report. However, when I try to show the parameter value in the report header (it's a date), I get prompted to enter the parameter.
  Any ideas as to what's causing this? I'm new to crystal reports so this might be a very simple problem.</p>
  
  <p>Here's my code:</p>
  
  <pre><code>using System;
  using System.Collections.Generic;
  using System.ComponentModel;
  using System.Data;
  using System.Drawing;
  using System.Text;
  using System.Windows.Forms;
  using System.Collections;
  using System.Data.SqlClient;
  using CrystalDecisions.CrystalReports.Engine;
  using CrystalDecisions.Shared;
  
  namespace CrystalReportsTestApp
  {
      public partial class ReportForm : Form
      {
          ReportDocument report = new ReportDocument();
  
          public ReportForm()
          {
              InitializeComponent();           
          }
  
          private void ConfigureCrystalReports()
          {
              string reportPath = "mypath\\CrystalReport1.rpt";
              report.Load(reportPath);
          }
  
          private void RunReportButton_Click(object sender, EventArgs e)
          {
              DateTime date = dateTimePicker1.Value;
  
              DataSet reportData = new DataSet();
  
              SqlConnection conn = null;
              SqlDataAdapter da = null;
  
              try
              {
                  conn = new SqlConnection(connectionString);
                  conn.Open();
                  da = new SqlDataAdapter();
  
                  SqlCommand cmd = new SqlCommand("cms.GetActiveEntityAccounts", conn);
                  cmd.CommandType = CommandType.StoredProcedure;
  
                  cmd.Parameters.Add("@EndDate", SqlDbType.DateTime).Value = date;
  
                  da.SelectCommand = cmd;
                  da.Fill(reportData, "DataTable1");
  
              }
              finally
              {
                  if (conn != null)
                  {
                      conn.Close();
                  }
              }
  
              report.SetDataSource(reportData);
              report.SetParameterValue("@EndDate", date);
  
              crystalReportViewer1.ReportSource = report;
              crystalReportViewer1.RefreshReport();         
          }
  
          private void ReportForm_Load(object sender, EventArgs e)
          {
              ConfigureCrystalReports();
          }
      }
      }
  </code></pre>