Hi chandra226,
Check this sample. now take its reference.
I have created this sample using below article.
HTML
<asp:GridView ID="gvCustomers" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:BoundField DataField="CustomerID" HeaderText="ID" />
<asp:BoundField DataField="ContactName" HeaderText="Name" />
<asp:BoundField DataField="City" HeaderText="City" />
<asp:BoundField DataField="Country" HeaderText="Country" />
<asp:TemplateField>
<ItemTemplate>
<asp:Button ID="btnPDF" Text="Generate PDF" runat="server" OnClick="GeneratePDF" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
Namespaces
C#
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using Microsoft.Reporting.WebForms;
VB.Net
Imports System.Configuration
Imports System.Data
Imports System.Data.SqlClient
Imports Microsoft.Reporting.WebForms
Code
C#
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
DataSet ds = GetData("SELECT TOP 10 CustomerID,ContactName,City,Country FROM Customers");
this.gvCustomers.DataSource = ds;
this.gvCustomers.DataBind();
}
}
protected void GeneratePDF(object sender, EventArgs e)
{
GridViewRow row = ((sender as Button).NamingContainer as GridViewRow);
string customerID = row.Cells[0].Text;
ReportViewer reportViewer1 = new ReportViewer();
reportViewer1.ProcessingMode = ProcessingMode.Local;
reportViewer1.LocalReport.ReportPath = Server.MapPath("~/Report.rdlc");
string conString = ConfigurationManager.ConnectionStrings["NORTHWINDConnectionString"].ConnectionString;
SqlCommand cmd = new SqlCommand("SELECT TOP 10 CustomerID,ContactName,City,Country FROM Customers WHERE CustomerID = '" + customerID + "'");
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, "Customers");
ReportDataSource datasource = new ReportDataSource("Customers", dsCustomers.Tables["Customers"]);
reportViewer1.LocalReport.DataSources.Clear();
reportViewer1.LocalReport.DataSources.Add(datasource);
Warning[] warnings;
string[] streamIds;
string contentType;
string encoding;
string extension;
string format = "PDF";
byte[] bytes = reportViewer1.LocalReport.Render(format, null, out contentType, out encoding, out extension, out streamIds, out warnings);
Response.Clear();
Response.Buffer = true;
Response.Charset = "";
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.ContentType = contentType;
Response.AppendHeader("Content-Disposition", "attachment; filename=RDLC." + extension);
Response.BinaryWrite(bytes);
Response.Flush();
Response.End();
}
}
}
}
private DataSet GetData(string query)
{
string conString = ConfigurationManager.ConnectionStrings["NORTHWINDConnectionString"].ConnectionString;
SqlCommand cmd = new SqlCommand(query);
using (SqlConnection con = new SqlConnection(conString))
{
using (SqlDataAdapter sda = new SqlDataAdapter())
{
cmd.Connection = con;
sda.SelectCommand = cmd;
using (DataSet dsCustomers = new DataSet())
{
sda.Fill(dsCustomers, "Customers");
return dsCustomers;
}
}
}
}
VB.Net
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
If Not Me.IsPostBack Then
Dim ds As DataSet = GetData("SELECT TOP 10 CustomerID,ContactName,City,Country FROM Customers")
Me.gvCustomers.DataSource = ds
Me.gvCustomers.DataBind()
End If
End Sub
Protected Sub GeneratePDF(ByVal sender As Object, ByVal e As EventArgs)
Dim row As GridViewRow = (TryCast((TryCast(sender, Button)).NamingContainer, GridViewRow))
Dim customerID As String = row.Cells(0).Text
Dim reportViewer1 As ReportViewer = New ReportViewer()
reportViewer1.ProcessingMode = ProcessingMode.Local
reportViewer1.LocalReport.ReportPath = Server.MapPath("~/Report.rdlc")
Dim conString As String = ConfigurationManager.ConnectionStrings("NORTHWINDConnectionString").ConnectionString
Dim cmd As SqlCommand = New SqlCommand("SELECT TOP 10 CustomerID,ContactName,City,Country FROM Customers WHERE CustomerID = '" & customerID & "'")
Using con As SqlConnection = New SqlConnection(conString)
Using sda As SqlDataAdapter = New SqlDataAdapter()
cmd.Connection = con
sda.SelectCommand = cmd
Using dsCustomers As Customers = New Customers()
sda.Fill(dsCustomers, "Customers")
Dim datasource As ReportDataSource = New ReportDataSource("Customers", dsCustomers.Tables("Customers"))
reportViewer1.LocalReport.DataSources.Clear()
reportViewer1.LocalReport.DataSources.Add(datasource)
Dim warnings As Warning()
Dim streamIds As String()
Dim contentType As String
Dim encoding As String
Dim extension As String
Dim format As String = "PDF"
Dim bytes As Byte() = reportViewer1.LocalReport.Render(format, Nothing, contentType, encoding, extension, streamIds, warnings)
Response.Clear()
Response.Buffer = True
Response.Charset = ""
Response.Cache.SetCacheability(HttpCacheability.NoCache)
Response.ContentType = contentType
Response.AppendHeader("Content-Disposition", "attachment; filename=RDLC." & extension)
Response.BinaryWrite(bytes)
Response.Flush()
Response.[End]()
End Using
End Using
End Using
End Sub
Private Function GetData(ByVal query As String) As DataSet
Dim conString As String = ConfigurationManager.ConnectionStrings("NORTHWINDConnectionString").ConnectionString
Dim cmd As SqlCommand = New SqlCommand(query)
Using con As SqlConnection = New SqlConnection(conString)
Using sda As SqlDataAdapter = New SqlDataAdapter()
cmd.Connection = con
sda.SelectCommand = cmd
Using dsCustomers As DataSet = New DataSet()
sda.Fill(dsCustomers, "Customers")
Return dsCustomers
End Using
End Using
End Using
End Function
Screenshot
