Introduction
In this post, I explain how to Display Master/Detail Data from a Database using Microsoft Report (rdlc) in ASP.NET.Steps :
Step - 1: Create New Project.
Go to File > New > Project > Select asp.net web forms application > Entry Application Name > Click OK.Step-2: Add a Database.
Go to Solution Explorer > Right Click on App_Data folder > Add > New item > Select SQL Server Database Under Data > Enter Database name > Add.Step-3: Create 2 table for Master Details Record.
Open Database > Right Click on Table > Add New Table > Add Columns > Save > Enter table name > Ok.Step-4: Create a Stored Procedure for fetch join data.
Right Click on Stored Procedure (in your database) > Add new Stoted procedure > Write following SQL Code And Save/Execute.
- CREATE PROCEDURE dbo.GetOrderDetails
- AS
- SELECT
- C.CID,
- C.CustomerCode,
- C.CustomerName,
- C.ContactNo,
- C.State,
- C.City,
- O.OrderID,
- O.OrderNo,
- O.OrderDate,
- O.Quantity,
- O.UnitPrice,
- O.TotalAmount
- FROM
- Customers AS C INNER JOIN
- OrderMaster AS O ON C.CID = O.CID
- RETURN
Step-5: Add Entity Data Model.
Go to Solution Explorer > Right Click on Project name form Solution Explorer > Add > New item > Select ADO.net Entity Data Model under data > Enter model name > Add.A popup window will come (Entity Data Model Wizard) > Select Generate from database > Next >
Chose your data connection > select your database > next > Select tables and Select Stored Procedure> enter Model Namespace > Finish.
Step-6: Add a Dataset (this is required for our .rdlc file).
Go to Solution Explorer > Right Click on Project name form Solution Explorer > Add > New item > Select Dataset under data> Enter dataset name > Add.Design your dataset as below...
Step-7: Add Report file(.rdlc) and Design your report.
Right Click on Solution Explorer > Add > New item > Select Report under Reporing > Enter report file name > Add.1. First add Our Created Dataset.
5. Add Table inside List Control for Show Details Data.
Step-8: Add a Webpage and Design for show Master Details Record using Report Viwer.
Go to Solution Explorer > Right Click on Project name form Solution Explorer > Add > New item > Select web form/ web form using master page under Web > Enter page name > Add.HTML Code
- <%@ Register Assembly="Microsoft.ReportViewer.WebForms, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" Namespace="Microsoft.Reporting.WebForms" TagPrefix="rsweb" %>
- <asp:Content runat="server" ID="FeaturedContent" ContentPlaceHolderID="FeaturedContent">
- </asp:Content>
- <asp:Content runat="server" ID="BodyContent" ContentPlaceHolderID="MainContent">
- <h3>Master Details Report using Microsoft Report in ASP.NET</h3>
- <div>
- <rsweb:ReportViewer ID="ReportViewer1" runat="server" Width="1000px" Height="800px" Font-Names="Verdana" Font-Size="8pt" WaitMessageFont-Names="Verdana" WaitMessageFont-Size="14pt">
- <LocalReport ReportPath="rpt_MasterDetailsOrder.rdlc" />
- </rsweb:ReportViewer>
- </div>
- </asp:Content>
Step-9: Write code in page_load event for fetch Master data from database and bind to report viwer.
- protected void Page_Load(object sender, EventArgs e)
- {
- if (!IsPostBack)
- {
- PopulateReport();
- }
- }
- private void PopulateReport()
- {
- using (MyDatabaseEntities dc = new MyDatabaseEntities())
- {
- var v = (from a in dc.GetOrderDetails()
- select a);
- ReportDataSource rd = new ReportDataSource("dsMasterDetailsOrder", v.ToList());
- ReportViewer1.LocalReport.DataSources.Add(rd);
- ReportViewer1.LocalReport.Refresh();
- }
- }