Hi Bonhomme,
I have created a sample by taking reference from below link go through the below link carefully and you will get to know where exactly you need to make the changes.
Dynamically Setting a Parameter from a C# Variable in Crystal Reports
You need to modify the code according to your need.
HTML
<div>
<CR:CrystalReportViewer ID="CrystalReportViewer1" runat="server" AutoDataBind="true" />
</div>
VB.Net
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
Dim crystalReport As New ReportDocument()
crystalReport.Load(Server.MapPath("~/Punch_Only_Branch_rpt.rpt"))
Dim paramFields As New ParameterFields()
Dim paramField As New ParameterField()
Dim discreteVal As New ParameterDiscreteValue()
paramField.ParameterFieldName = "Full_Name"
' Set the discrete value and pass it to the parameter
discreteVal.Value = "This is Your Full_Name"
Dim paramField1 As New ParameterField()
Dim discreteVal1 As New ParameterDiscreteValue()
paramField1.ParameterFieldName = "Pay_Period"
discreteVal1.Value = "This is Your Pay_Period"
paramField.CurrentValues.Add(discreteVal)
paramField1.CurrentValues.Add(discreteVal1)
' Add parameter to the parameter fields collection.
paramFields.Add(paramField)
paramFields.Add(paramField1)
Dim dsMy_Parameters As My_Parameters = GetData()
crystalReport.SetDataSource(dsMy_Parameters)
CrystalReportViewer1.ParameterFieldInfo = paramFields
CrystalReportViewer1.ReportSource = crystalReport
End Sub
Private Function GetData() As My_Parameters
Dim conString As String = ConfigurationManager.ConnectionStrings("constr").ConnectionString
Dim cmd As New SqlCommand("SELECT CustomerId,Name,Country FROM Customers")
Using con As New SqlConnection(conString)
Using sda As New SqlDataAdapter()
cmd.Connection = con
cmd.CommandType = CommandType.Text
sda.SelectCommand = cmd
Using dsMy_Parameters As New My_Parameters()
sda.Fill(dsMy_Parameters, "Customers")
Return dsMy_Parameters
End Using
End Using
End Using
End Function
C#
protected void Page_Load(object sender, System.EventArgs e)
{
ReportDocument crystalReport = new ReportDocument();
crystalReport.Load(Server.MapPath("~/Punch_Only_Branch_rpt.rpt"));
ParameterFields paramFields = new ParameterFields();
ParameterField paramField = new ParameterField();
ParameterDiscreteValue discreteVal = new ParameterDiscreteValue();
paramField.ParameterFieldName = "Full_Name";
// Set the discrete value and pass it to the parameter
discreteVal.Value = "This is Your Full_Name";
ParameterField paramField1 = new ParameterField();
ParameterDiscreteValue discreteVal1 = new ParameterDiscreteValue();
paramField1.ParameterFieldName = "Pay_Period";
discreteVal1.Value = "This is Your Pay_Period";
paramField.CurrentValues.Add(discreteVal);
paramField1.CurrentValues.Add(discreteVal1);
// Add parameter to the parameter fields collection.
paramFields.Add(paramField);
paramFields.Add(paramField1);
My_Parameters dsMy_Parameters = GetData();
crystalReport.SetDataSource(dsMy_Parameters);
CrystalReportViewer1.ParameterFieldInfo = paramFields;
CrystalReportViewer1.ReportSource = crystalReport;
}
private My_Parameters GetData()
{
string conString = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
SqlCommand cmd = new SqlCommand("SELECT CustomerId,Name,Country FROM Customers");
using (SqlConnection con = new SqlConnection(conString))
{
using (SqlDataAdapter sda = new SqlDataAdapter())
{
cmd.Connection = con;
cmd.CommandType = CommandType.Text;
sda.SelectCommand = cmd;
using (My_Parameters dsMy_Parameters = new My_Parameters())
{
sda.Fill(dsMy_Parameters, "Customers");
return dsMy_Parameters;
}
}
}
}
ScreenShot
