1

I have created the stored procedure in ms-sql server 2014 and creating the rdlc report. Now binding the report in reportviewer programatically, but in report only columns are displayed and not the data...

The below code is my stored procedure :

USE [Bonny]
GO
/****** Object:  StoredProcedure [dbo].[AccMast_AllDetail]    Script Date: 17/10/2016 12:10:42 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER Proc [dbo].[AccMast_AllDetail]
as
Select Account_Code,Party_Name,Address_1,Address_2,City from FAMPAR order by Account_Code
GO

My VB.NET code in reportviewer form load event...

        ReportViewer.Reset()
        Dim data As New AccMastDataSet
        Dim ReportDataSource1 As ReportDataSource = New ReportDataSource
        ReportDataSource1.Name = "AccMastDataSet"
        ReportDataSource1.Value = rds
        ReportViewer.LocalReport.DataSources.Clear()
        ReportViewer.LocalReport.DataSources.Add(ReportDataSource1)
        ReportViewer.LocalReport.ReportEmbeddedResource = "Report1.rdlc"
        ReportViewer.LocalReport.ReportPath = "D:\netbonny\netbonnyproject\netbonnyproject\Reports\Report1.rdlc"
        ReportViewer.RefreshReport()

In this I am getting column headers but not the Data, data is there and checked in sql management studio...

Another VB.NET code I tried is :

Dim data As New AccMastDataSet
Dim abc = data.Tables("AccMast_AllDetail")
Dim rds = New Microsoft.Reporting.WinForms.ReportDataSource("AccMastDataSet", data)
ReportViewer.LocalReport.DataSources.Clear()
ReportViewer.LocalReport.DataSources.Add(rds)
ReportViewer.LocalReport.ReportEmbeddedResource = "netbonnyproject.Report1.rdlc"
ReportViewer.RefreshReport()

Here I am getting error :

enter image description here

I have no Idea what it says...

Help me out in here.

bonny
  • 688
  • 1
  • 14
  • 33

1 Answers1

2

Currently you have passed a DataTable of a new instance of a DataSet to report data source. So obviously it should be empty and you will see report column headers without any data.

You should load data into the DataTable and then pass it to report.

For example, if you dropped a TableAdapter on your form, you can use such code:

Me.Table1TableAdapter.Fill(Me.DataSet1.Table1)
Dim rds = New Microsoft.Reporting.WinForms.ReportDataSource("DataSet1", Me.DataSet1.Table1)

Also

Dim cn = "Connection String"
Dim cmd = "Stored Procedre Name"
Dim table = New DataTable()
Using adapter As New SqlDataAdapter(cmd, cn)
    adapter.SelectCommand.CommandType = CommandType.StoredProcedure
    adapter.Fill(table)
End Using
Dim rds = New Microsoft.Reporting.WinForms.ReportDataSource("DataSet1", table)
Reza Aghaei
  • 120,393
  • 18
  • 203
  • 398
  • OMG! I am sooo happy seeing my data into the ReportViewer Atlast... #cry........... Thanx alot. And ya, I ain't used the `Dim rds = New Microsoft.Reporting.WinForms.ReportDataSource("DataSet1", table)`, I directly placed table in `ReportDataSource1.Value = table` and its working... Thank you alot @RezaAghaei.. – bonny Oct 18 '16 at 06:07
  • actually I mixed two codes so there were two ReportDataSource... Whatever, I am feeling relief now, thanx again @RezaAghaei – bonny Oct 18 '16 at 06:09