In this article I will explain step by step tutorial with an example and attached sample code, how to create RDLC reports in Visual Studio 2008 / 2010 / 2012 /2013.
	
		 
	
		Database
	
		Here I am making use of Microsoft’s Northwind Database. You can download it from here
	
	
		 
	
		1. Add Typed DataSet to the ASP.Net Website
	
		Since I am using disconnected RDLC Reports we will make use of Typed DataSet to populate the 
RDLC Reports with data from database.
	![RDLC (Local SSRS) Report ASP.Net Example using DataSet or DataTable in C# VB.Net and Visual Studio 2010]() 
	
		 
	
		 
	
		2. Adding DataTable to the Typed DataSet
	
		Our next step would be to add a DataTable to the Type DataSet. 
	![RDLC (Local SSRS) Report ASP.Net Example using DataSet or DataTable in C# VB.Net and Visual Studio 2010]() 
	
		 
	
		 
	
		3. Adding Columns or fields to DataTable
	
		In the DataTable we need to specify the column names that we want to display in the RDLC Report.
	
		
			Note: The Column Names of the DataTable must exactly match with the actual Database Table column names.
	 
	
	![RDLC (Local SSRS) Report ASP.Net Example using DataSet or DataTable in C# VB.Net and Visual Studio 2010]() 
	
	
		By default all the columns are of String Data Type but you can also change the data type as per your need.
	
		 
	
		4. Adding the RDLC Report
	
		Using the Add New Item option in Visual Studio you need to add new RDLC Report. I am making use of Report Wizard so that it make easier to configure the Report.
	![RDLC (Local SSRS) Report ASP.Net Example using DataSet or DataTable in C# VB.Net and Visual Studio 2010]() 
	
		 
	
	
		5. Choose the DataSet
	
		Now we need to choose the DataSet that will act as the DataSource for the RDLC Report. Thus we need to select the Customers DataSet that we have created earlier.
	![RDLC (Local SSRS) Report ASP.Net Example using DataSet or DataTable in C# VB.Net and Visual Studio 2010]() 
	
		 
	
	
		6. Choose the Fields to be displayed in the RDLC Report
	
		Next we need to choose the fields we need to display, we need to simply drag and drop each fields into the Values Box as shown in the screenshot below
	![RDLC (Local SSRS) Report ASP.Net Example using DataSet or DataTable in C# VB.Net and Visual Studio 2010]() 
	
		 
	
	
		7. Choose the Layout
	
		The next dialog will ask us to choose the layout, we can simply skip it as of now as this is a simple Report with no calculations involved.
	![RDLC (Local SSRS) Report ASP.Net Example using DataSet or DataTable in C# VB.Net and Visual Studio 2010]() 
	
		 
	
	
		8. Choose the Style
	
		Finally we need to choose the style, i.e. color and theme of the Report.
	![RDLC (Local SSRS) Report ASP.Net Example using DataSet or DataTable in C# VB.Net and Visual Studio 2010]() 
	
		 
	
		Once you press Finish button on the above step, the Report is ready and is displayed in the Visual Studio as shown below
	![RDLC (Local SSRS) Report ASP.Net Example using DataSet or DataTable in C# VB.Net and Visual Studio 2010]() 
	
		 
	
		9. Adding Report Viewer to the page
	
		In order to display the Report we will need to add ReportViewer control to the page from the Toolbox. The ReportViewer controls requires ScriptManager on the page.
	![RDLC (Local SSRS) Report ASP.Net Example using DataSet or DataTable in C# VB.Net and Visual Studio 2010]() 
	
		 
	
		Once you add the ReportViewer control to the page, your page must look as below
	
		
			<%@ Register Assembly="Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
		
			    Namespace="Microsoft.Reporting.WebForms" TagPrefix="rsweb" %>
		
			 
		
			<!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></title>
		
			</head>
		
			<body>
		
			    <form id="form1" runat="server">
		
			    <asp:ScriptManager ID="ScriptManager1" runat="server">
		
			    </asp:ScriptManager>
		
			    <rsweb:ReportViewer ID="ReportViewer1" runat="server" Width="600">
		
			    </rsweb:ReportViewer>
		
			    </form>
		
			</body>
		
			</html>
	 
	
		 
	
		 
	
		10. Populating the RDLC Report from Database
	
		Below is the code to populate the RDLC Report from database. The first statement notifies the ReportViewer control that the Report is of type Local Report.
	
		Then the path of the Report is supplied to the ReportViewer, after that the Customers DataSet is populated with records from the Customers Table is set as ReportSource to the Report.
	
		C#
	
		Namespaces
	
		
			using System.Data;
		
			using System.Configuration;
		
			using System.Data.SqlClient;
		
			using Microsoft.Reporting.WebForms;
	 
	
		 
	
		
			protected void Page_Load(object sender, EventArgs e)
		
			{
		
			    if (!IsPostBack)
		
			    {
		
			        ReportViewer1.ProcessingMode = ProcessingMode.Local;
		
			        ReportViewer1.LocalReport.ReportPath = Server.MapPath("~/Report.rdlc");
		
			        Customers dsCustomers = GetData("select top 20 * from customers");
		
			        ReportDataSource datasource = new ReportDataSource("Customers", dsCustomers.Tables[0]);
		
			        ReportViewer1.LocalReport.DataSources.Clear();
		
			        ReportViewer1.LocalReport.DataSources.Add(datasource);
		
			    }
		
			}
		
			 
		
			private Customers GetData(string query)
		
			{
		
			    string conString = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
		
			    SqlCommand cmd = new SqlCommand(query);
		
			    using (SqlConnection con = new SqlConnection(conString))
		
			    {
		
			        using (SqlDataAdapter sda = new SqlDataAdapter())
		
			        {
		
			            cmd.Connection = con;
		
			 
		
			            sda.SelectCommand = cmd;
		
			            using (Customers dsCustomers = new Customers())
		
			            {
		
			                sda.Fill(dsCustomers, "DataTable1");
		
			                return dsCustomers;
		
			            }
		
			        }
		
			    }
		
			}
	 
	
		 
	
		VB.Net
	
		Namespaces
	
		
			Imports System.Data
		
			Imports System.Configuration
		
			Imports System.Data.SqlClient
		
			Imports Microsoft.Reporting.WebForms
	 
	
		 
	
		
			Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
		
			    If Not IsPostBack Then
		
			        ReportViewer1.ProcessingMode = ProcessingMode.Local
		
			        ReportViewer1.LocalReport.ReportPath = Server.MapPath("~/Report.rdlc")
		
			        Dim dsCustomers As Customers = GetData("select top 20 * from customers")
		
			        Dim datasource As New ReportDataSource("Customers", dsCustomers.Tables(0))
		
			        ReportViewer1.LocalReport.DataSources.Clear()
		
			        ReportViewer1.LocalReport.DataSources.Add(datasource)
		
			    End If
		
			End Sub
		
			 
		
			Private Function GetData(query As String) As Customers
		
			    Dim conString As String = ConfigurationManager.ConnectionStrings("constr").ConnectionString
		
			    Dim cmd As New SqlCommand(query)
		
			    Using con As New SqlConnection(conString)
		
			        Using sda As New SqlDataAdapter()
		
			            cmd.Connection = con
		
			 
		
			            sda.SelectCommand = cmd
		
			            Using dsCustomers As New Customers()
		
			                sda.Fill(dsCustomers, "DataTable1")
		
			                Return dsCustomers
		
			            End Using
		
			        End Using
		
			    End Using
		
			End Function
	 
	
		 
	![RDLC (Local SSRS) Report ASP.Net Example using DataSet or DataTable in C# VB.Net and Visual Studio 2010]() 
	
		 
	
		 
	
		Demo
	
	
		 
	
		Downloads