using Crystal Reports to display data in my dataset correctly (display the data I selected instead o



In my win form, I'm trying to display a Crystal report with the data in my
dataset only but, if I follow the steps in this msdn page:

it always displays all the data regardless of the Select statement I run.
Here's my code:

//my code

CrystalReport1 oRpt = new CrystalReport1(); //CrystalReport1.rpt - it
contais 3 fields from table ClientData: clientid, fname, lname

SqlConnection SQLConn = new SqlConnection("Data Source=localhost; Integrated
Security=SSPI;" +

"Initial Catalog=invoicing");

string strThisQuery = "select clientid, fname, lname from ClientData where
clientID = 4"; /it returns only one record

SqlDataAdapter MyDataAdapterClients = new SqlDataAdapter (strThisQuery,

DataSet DS_MyReportsDS = new DataSet();

MyDataAdapterClients.Fill(DS_MyReportsDS, "ClientData");

oRpt.SetDataSource (DS_MyReportsDS);

crystalReportViewer1.ReportSource = oRpt;

It doesn't matter what my Select returns, it'll always display all the data
in ClientData. I posted a similar message a few days ago, and someone posted
"If it contains the schema of all the columns, the CrystalReportViewer will
display all the data in the table regardless of your select." but I really
didn't understand what he meant. How would I be able to pass my Select
statement into the report?

Steven Wood


One solution is to create a parameter in your Crystal Report (called
'ClientID') and set the properties at runtime in the code before setting the
Report Source, something like:

CrystalReport1 rpt = new CrystalReport1();
ParameterFieldDefinitions paramFieldDefs;
ParamterFieldDefinition paramFieldDef;
ParameterValues paramVal = new ParameterValues();
ParameterDiscreteValues paramDiscreteVal = new ParameterDiscreteValues();

paramDiscreteVal.Value = "4"; // the client id

paramFieldDefs = rpt.DataDefinition.ParameterFields;

paramFieldDef = paramFieldDefs.Item("ClientID");

paramVal = paramFieldDef.CurrentValues;




crystalReportViewer1.ReportSource = oRpt;


Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question