Use Crystal Report In ASP.NET Using C#

We will first download the SAP Crystal report from the source, and install it on our system, then with the help of some simple code we will go ahead.

Initial chamber

Firstly, download the SAP Crystal report for respective IDE’s of Visual Studio,

  • For Visual Studio 2010
  • For Visual Studio 2013

Step 1: Open Visual Studio 2010 and create an Empty Website. Give a suitable name [crystalrpt_demo].

Step 2: In Solution Explorer you get your empty website, and then add a Web Form and SQL Server Database and Dataset. By following these steps:

For Web Form:

crystalrpt_demo(Your Empty Website) - Right Click, Add New Item, Web Form. Name it cry talrpt_demo.aspx.

For SQL Server Database:

crystalrpt_demo (Your Empty Website) - Right Click, Add New Item - SQL Server Database. Add Database inside the App_Data_folder.

For DataSet:

crystalrpt_demo  (Your Empty Website) - Right Click, Add New Item, DataSet. Add DataSet inside the App_Code_folder.

Database chamber

Step 3: In Server Explorer, Click on your Database [Database.mdf] - Tables, Add New Table and form a table like this:

Table - tbl_data (Don’t Forget to make ID as IS Identity - True)

table design

Insert some data inside your table by going to your table - tbl_data - Right Click and Show tbl_data. Add data in the table.

Store Procedure - sp_select :

Store Procedure

Double Click on the dataset that resides under App_code_Folder. See the following image:

App_code_Folder

When you double click the dataset you get the blank area, there you have to do something like the following:
Right Click on the blank area -Add - Datatable.

Add Datatable

Datatable

Change the name of table from Datatable1 to Newtbl_data, there you have to add 3 columns for ID, Name, City as we had taken in tbl_data. So add three Columns. You will get something like the following image.

new table

After this process you have to go the crystalrpt_demo- Right Click, Add New Item and find Crystal Report.rpt file.

create Crystal Report

Crystal Report Gallery will open like the following:

new Crystal Report Gallery

You got something like this:

Crystal Report

When your crystal report opens up like the above image, then you can find in the left or right dock. Field Explorer opens up.

see Field Explorer

Right Click on Field Explorer - Database Expert, Create New Connection and you have to find the table that we had made in DataSet i.e - Newtbl_data.

Once you got your table - Add that table to right hand side pane using “ >>” button and Press OK. See the following image:

Press OK

You will get your Newtbl_data in Field Explorer like the following:

Field Explorer

Here you have to add these ID, Name and City from Database Fields to the Crystal Report - Section 3 Page Details. You can drag these fields to the Crystal Report Page Details.

Crystal Report Page

Design chamber

Step 4: Now open your crystalrpt_demo.aspx file, where we create our design for crystal report, We will add Crystal Report Viewer here.

Go to the toolbox and find Reporting - Drag and Drop Crystal Report Viewer.

crystalrpt_demo.aspx

  1. <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>  
  2.   
  3. <%@ Register assembly="CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" namespace="CrystalDecisions.Web" tagprefix="CR" %>  
  4.   
  5. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  6.   
  7. <html xmlns="http://www.w3.org/1999/xhtml">  
  8. <head runat="server">  
  9.     <title></title>  
  10. </head>  
  11. <body>  
  12.     <form id="form1" runat="server">  
  13.     <div>  
  14.       
  15.         <CR:CrystalReportViewer ID="CrystalReportViewer1" runat="server"   
  16.             AutoDataBind="true" />  
  17.       
  18.     </div>  
  19.     <asp:Button ID="Button1" runat="server" onclick="Button1_Click"   
  20.         Text="Make it PDF" />  
  21.     </form>  
  22. </body>  
  23. </html>  
Code chamber

Step 5: Open your crystalrpt_demo.aspx.cs and write some code so that our application starts working.

    crystalrpt_demo.aspx.cs

Add some Namespaces to crystalrpt_demo.aspx.cs page.

Namespaces

  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Linq;  
  4. using System.Web;  
  5. using System.Web.UI;  
  6. using System.Web.UI.WebControls;  
  7. using System.Data;  
  8. using System.Data.SqlClient;  
  9. using CrystalDecisions.CrystalReports.Engine;  
  10. using CrystalDecisions.Reporting;  
  11. using CrystalDecisions.Shared;  
  12. using System.IO;  
  13.   
  14. public partial class _Default : System.Web.UI.Page  
  15. {  
  16.     SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True;User Instance=True");  
  17.     ReportDocument rprt = new ReportDocument();  
  18.     string filepath;  
  19.     protected void Page_Load(object sender, EventArgs e)  
  20.     {  
  21.          
  22.     }  
  23.   
  24.   
  25.     protected void Button1_Click(object sender, EventArgs e)  
  26.     {  
  27.         rprt.Load(Server.MapPath("~/CrystalReport.rpt"));  
  28.         rprt.FileName = Server.MapPath("~/CrystalReport.rpt");  
  29.         SqlCommand cmd = new SqlCommand("sp_select", con);  
  30.         SqlDataAdapter sda = new SqlDataAdapter(cmd);  
  31.         DataSet ds = new DataSet();  
  32.         sda.Fill(ds,"Newtbl_data");  
  33.         rprt.SetDataSource(ds);  
  34.         CrystalReportViewer1.ReportSource = rprt;  
  35.         CrystalReportViewer1.DataBind();  
  36.         pdfdemo();  
  37.     }  
  38.   
  39.     public void pdfdemo()  
  40.     {  
  41.   
  42.         Response.Clear();  
  43.         filepath = Server.MapPath("~/" + "demo.pdf");  
  44.         rprt.ExportToDisk(ExportFormatType.PortableDocFormat, filepath);  
  45.         FileInfo fileinfo = new FileInfo(filepath);  
  46.         Response.AddHeader("Content-Disposition""inline;filenam=demo.pdf");  
  47.         Response.ContentType = "application/pdf";  
  48.         Response.WriteFile(fileinfo.FullName);  
  49.           
  50.       
  51.       
  52.     }  
  53.       
  54. }  
Output chamber


Make it PDF

table

Hope you liked it. Thank you for Reading. Have a good day.