I want to call the crystal report by passing multiple parameters via crystal report
Here I Paste the code which I used but the problem was login information is prompt while clicking the button




using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;
public partial class aspx_report_report : System.Web.UI.Page
{
SqlConnection con;
SqlCommand cmd;

private void Page_Init(object sender, EventArgs e)
{
con = new SqlConnection(System.Configuration.ConfigurationMa nager.ConnectionStrings["pcmmscon"].ToString());
da = new SqlDataAdapter("", con);
if (!IsPostBack)
{
DataSet ds = new DataSet();
DataTable dt = new DataTable();
string str;

str = "select route_id,route_name from route_details";
da = new SqlDataAdapter(str, con);
da.Fill(ds, "route");
droproutename.DataTextField = "route_name";
droproutename.DataValueField = "route_id";
droproutename.DataSource = ds.Tables["route"];
droproutename.DataBind();

str = "select shift_id,shift_name from shift_details";
da = new SqlDataAdapter(str, con);
da.Fill(ds, "shift");
dropshiftname.DataTextField = "shift_name";
dropshiftname.DataValueField = "shift_id";
dropshiftname.DataSource = ds.Tables["shift"];
dropshiftname.DataBind();
dropshiftname.SelectedIndex = -1;
}


}
protected void Page_Load(object sender, EventArgs e)
{


}
protected void droproutename_SelectedIndexChanged(object sender, EventArgs e)
{
string str = "select emp_name,agent_id from employee_personal,agent_details where employee_personal.emp_id=agent_details.emp_id and route_id='" + droproutename.SelectedValue.ToString() + "'";
da = new SqlDataAdapter(str, con);
da.Fill(ds, "agent");
dropagentname.DataSource = ds.Tables["agent"];
dropagentname.DataTextField = "emp_name";
dropagentname.DataValueField = "agent_id";
dropagentname.DataBind();
if (ds.Tables["agent"].Rows.Count > 0)
{
dropagentname.SelectedIndex = 0;
}
else
{
dropagentname.Items.Clear();
dropagentname.Items.Add("No Agent Available");
}
}
protected void btnprint_Click(object sender, ImageClickEventArgs e)
{
ReportDocument cryRpt = new ReportDocument();
//ConnectionInfo crConnectionInfo = new ConnectionInfo();


ParameterFields paramFields = new ParameterFields();
ParameterField paramField = new ParameterField();
ParameterDiscreteValue paramDiscreteValue = new ParameterDiscreteValue();
paramField.Name = "@strroute_id";
paramDiscreteValue.Value = Convert.ToInt32(dropshiftname.SelectedValue.ToStri ng());
paramField.CurrentValues.Add(paramDiscreteValue);
paramFields.Add(paramField);

paramField = new ParameterField();
paramDiscreteValue = new ParameterDiscreteValue();
paramField.Name = "@intagent_id";
paramDiscreteValue.Value = Convert.ToInt32(dropagentname.SelectedValue.ToStri ng());
paramField.CurrentValues.Add(paramDiscreteValue);
paramFields.Add(paramField);

paramField = new ParameterField();
paramDiscreteValue = new ParameterDiscreteValue();
paramField.Name = "@dtcollection_date";
paramDiscreteValue.Value = txtcollectiondate.Text.ToString();
paramField.CurrentValues.Add(paramDiscreteValue);
paramFields.Add(paramField);

paramField = new ParameterField();
paramDiscreteValue = new ParameterDiscreteValue();
paramField.Name = "@intshift_id";
paramDiscreteValue.Value = Convert.ToInt32(dropshiftname.SelectedValue.ToStri ng());
paramField.CurrentValues.Add(paramDiscreteValue);
paramFields.Add(paramField);

CrystalReportViewer1.ParameterFieldInfo = paramFields;
cryRpt.Load(Server.MapPath("~/aspx/report/rtcollectionreport.rpt"));
cryRpt.SetDatabaseLogon("Username", "Password", @"ServerName", "Database");

CrystalReportViewer1.ReportSource = cryRpt;
CrystalReportViewer1.RefreshReport();


}
}