Steps to Pass Parameters to Crystal Reports in C#

First Step
  1. //getting and set dataset to report    
  2. string sql = "select * from bill_mst";    
  3. DataRetriever dr = new DataRetriever();    
  4. dr.getValueFromCustomer(sql);    
  5. DataTable dtSum = dr.getDataTable();    
  6. dsMyReprt k = new dsMyReprt();    
  7. k.Tables.Remove("billmst");    
  8. dtSum.TableName = "billmst";    
  9. k.Tables.Add(dtSum);    
  10. CrystalReport1 myDataReport = new CrystalReport1();    
  11. //pass parameter    
  12. DataSet ds = new DataSet();    
  13. // con = new OleDbConnection(ConfigurationManager.ConnectionStrings["connect"].ConnectionString);    
  14. OleDbConnection con = Gbl_Cls.conection(); // new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=ClientMgmtDb1.accdb;");    
  15. if (con.State == ConnectionState.Closed) con.Open();    
  16. OleDbDataAdapter da = new OleDbDataAdapter();    
  17. OleDbDataAdapter da1 = new OleDbDataAdapter();    
  18. // if(txtbillno.Text.Trim().Length==0)    
  19. if (txtbillno.Text != "")     
  20. {    
  21.     // MessageBox.Show("Enter Bill number");    
  22.     da = new OleDbDataAdapter("select ID,NAME,BILL_Number,Date,Address,PO_Number,PO_Date,Narat,Quantity,Rate,Total_price,Vat,Serves_tax,vatAmt,StaxAmt,IncludeTax_AMT,amount,Total_vatAmt,Total_StaxAmt,STax_Amount,VTax_Amount FROM Bill_Mst1 where ID=" + txtbillno.Text.Trim() + "", con);    
  23.     da1 = new OleDbDataAdapter("select ID,[BILL_Number],[Narat],[Quantity],[Rate],[Amount],[vatAmt],[StaxAmt] from product_mst where ID=" + txtbillno.Text.Trim() + "", con);    
  24. }    
  25. da.Fill(ds, "Bill_Mst");    
  26. da1.Fill(ds, "Product");    
  27. if (ds.Tables.Count > 0)     
  28. {    
  29.     Bill2 cr = new Bill2();    
  30.     CrystalReport1 cr1 = new CrystalReport1();    
  31.     cr.SetDataSource(ds);    
  32.     cr1.SetDataSource(ds.Tables["Product"]);    
  33.     this.crystalReportViewer1.ReportSource = cr;    
  34.     this.crystalReportViewer1.Show();    
  35.     crystalReportViewer1.Refresh();    
  36. }    
  37. con.Close();    
  38. }    
  39. catch (OleDbException s)     
  40. {    
  41.     MessageBox.Show("Server Problem...");    
  42. }    
Second Step
  1. ParameterFields paramFields = new ParameterFields();  
  2. // ParameterDiscreteValue paramDiscreteValue = new ParameterDiscreteValue();  
  3. ParameterField paramField = new ParameterField();  
  4. ParameterDiscreteValue paramDiscreteValue = new ParameterDiscreteValue();  
  5. paramField.Name = "@DTotal";  
  6. paramDiscreteValue.Value = tot;  
  7. paramField.CurrentValues.Add(paramDiscreteValue);  
  8. paramFields.Add(paramField);  
  9. paramField = new ParameterField();  
  10. paramDiscreteValue = new ParameterDiscreteValue();  
  11. paramField.Name = "@name";  
  12. paramDiscreteValue.Value = name;  
  13. paramField.CurrentValues.Add(paramDiscreteValue);  
  14. paramFields.Add(paramField);  
  15. crystalReportViewer1.ParameterFieldInfo = paramFields;  
  16. myDataReport.SetDataSource(k);  
  17. crystalReportViewer1.ReportSource = myDataReport;