Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles / Languages / C#

Beginners tutorial on how to load Crystal Reports using Crystal Report Viewer in Visual Studio 2012

4.96/5 (11 votes)
12 Dec 2013CPOL2 min read 191.3K  
Simple article to load a crystal report rpt file using crystalreportviewer in Visual Studio 2012

Introduction

Loading a report using C# is not much of a big deal. But as far as beginners are concerned, it's a task to be dealt with. I had trouble once trying to get this on as I was working on Crystal Reports and Visual Studio.

This tutorial is basically for beginners who are having trouble implementing Crystal Reports in Visual Studio 2012.

Background

I am a beginner in C# and couldn't find much help the first day of Google-ing. May be I am not a good Google-er :)

OK, let me come to the point now. The second day, I found some references and I realized the problems I was facing.

My problem was: Crystal Reports for Visual Studio was necessary and I only had the Crystal Reports re-distributable for Visual Studio. With that installed, I was trying to find the Crystal Reports Viewer in my toolbox, and I realized later from my references that the re-distributable is not enough on a development PC.

Using the Code

First you should download the developer version of Crystal Reports for Visual Studio 2012 from the below link:

Next, add the below namespaces in your project:

C#
using System.Data.Odbc;
using System.Data.SqlClient;
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;

After downloading Crystal Reports from the above link, install it in your PC. After the installation is complete, when you open the toolbox you will notice that more controls are added in the toolbox and you can find the Crystal Reports Viewer in the toolbox. Drag and drop the Crystal Reports Viewer into your form.

Add a button in your project and insert the below code in your button click event:

C#
string test = "select * from tablename";
DataSet testds = new DataSet();
SqlConnection cnn = new SqlConnection("user id=username;password=pwd;server" + 
  "=dataserver;Trusted_Connection=false;database=dbname;connection timeout=30");
SqlCommand testcmd = new SqlCommand(test, cnn);
testcmd.CommandType = CommandType.Text;
SqlDataAdapter testda = new SqlDataAdapter(testcmd);
testda.Fill(testds, "testttable");
cnn.Open();
ReportDocument myReportDocument;
myReportDocument = new ReportDocument();
myReportDocument.Load(@"D:\Reports\rptitemintrans.rpt");
myReportDocument.SetDataSource(testds);
myReportDocument.SetDatabaseLogon("username", "pwd");
crystalReportViewer1.ReportSource = myReportDocument;
crystalReportViewer1.DisplayToolbar = true;

I assume you are familiar with the SQL connection string and how to fill the datasets. Open your connection and load the report. Bang! Done....

Oops..  That was so fast.

Now the code in detail:

For you to load the Crystal Reports report in the Crystal Reports Viewer, you need a ReportDocument, which in my case as per the code is myReportDocument. ReportDocument acts as the report and loads in the Crystal Reports Viewer.

I created and initiated the ReportDocument here as:

C#
ReportDocument myReportDocument;
myReportDocument = new ReportDocument();

Mention the path of the report to be loaded by the ReportDocument:

C#
myReportDocument.Load(@"D:\Reports\rptitemintrans.rpt");

Set the datasource of the ReportDocument:

C#
myReportDocument.SetDataSource(testds);

Set the database logon by giving the database username and password for the ReportDocument. Now this step is very important because without this code when you run the application, you will be prompted to enter the username and password to fetch data from the SQL Server.

C#
myReportDocument.SetDatabaseLogon("username", "pwd");

Finally set the report source to the Crystal Reports Viewer and if you want the toolbar to appear in the viewer, set it to true:

C#
crystalReportViewer1.ReportSource = myReportDocument;
crystalReportViewer1.DisplayToolbar = true;

Last but not the least, add the below code to your app.config file:

XML
<startup useLegacyV2RuntimeActivationPolicy="true"> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
</startup>>

Points of Interest

Well, all done here. I had to spend a day trying to find out how to load Crystal Reports in Visual Studio. But now with this tutorial I guess a beginner should be able to easily get through the hurdle.

Good day to all !!! :)

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)