In this article I am going to explain How we can
display a Crystal Report by fetching records from more than one table in
ASP.NET.
Below 3 tables I am using to create a Crystal Report.
1. Customer

Image 1.
2. Product

Image 2.
3. Cust_Prod_Order

Image 3.
Now Open Visual Studio -> File -> New Web Site -> Ok

Image 4.
After this Right Click on Solution Explorer -> Add
New Item -> Crystal Report -> Add.

Image 5.

Image 6.
Here Expand -> Create New Connection -> Select
OLE DB(ADO) -> A pop up window will open ->Select Microsoft OLE DB
Provider for SQL Server -> Next

Image 7.
Now Enter your SQL Server Details. -> Next

Image 8.
Click Finish.

Image 9.
Now Select your Data Base -> Select Your All Tables
and Move -> Next

Image 10.
Now You can see your tables with relationship. -> Next

Image 11.
Now select column to show in reports -> Finish

Image 12.
Now you can see your report is ready. All Columns
already in Details sections. You can remove any column or you can add new
column by drag n drop from field explorer to report. Here I did some formatting
like header text background, detail column color etc.

Image 13.
Now time to add a Report Viewer where we can show this
Crystal Report. On Default.aspx page drag n drop CrystalReportViewer from tool
box like below.

Image 14.
My aspx code is:
<%@ Page
Language="C#"
AutoEventWireup="true"
CodeFile="Default.aspx.cs"
Inherits="_Default"
%>
<%@ Register
Assembly="CrystalDecisions.Web,
Version=10.5.3700.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"
Namespace="CrystalDecisions.Web"
TagPrefix="CR"
%>
<!DOCTYPE html
PUBLIC "-//W3C//DTD
XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Crystal Report From More Than One Table</title>
</head>
<body>
<form
id="form1"
runat="server">
<table
cellpadding="10"
cellspacing="10"
width="70%"
height="300px"
align="center"
style="border: solid 2px gray;">
<tr>
<td align="center" style="background-color:
SkyBlue;">
<span style="font-family: Times New Roman; font-size: 18pt; color: Green;">Customer
Product Order Detail Report</span>
</td>
</tr>
<tr>
<td align="center">
<asp:Panel ID="pnlReport" runat="server" Height="400px">
<CR:CrystalReportViewer ID="CrystalReportViewer1" runat="server"
AutoDataBind="true"
/>
</asp:Panel>
</td>
</tr>
</table>
</form>
</body>
</html>
Now on Page_Load event write below code:
using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using
System.Web.UI.HtmlControls;
using
System.Web.UI.WebControls;
using
System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using
CrystalDecisions.CrystalReports.Engine;
public partial
class _Default
: System.Web.UI.Page
{
protected void
Page_Load(object sender, EventArgs e)
{
ReportDocument cryRpt = new ReportDocument();
cryRpt.Load(Server.MapPath("EmployeeCrystalReport.rpt"));
CrystalReportViewer1.ReportSource = cryRpt;
}
}
Now Run your Application:

Image 15.