【问题标题】:Data not Loaded in reportviewer VB.NET在报表查看器 VB.NET 中未加载数据
【发布时间】:2016-10-17 08:03:39
【问题描述】:

我已经在 ms-sql server 2014 中创建了存储过程并创建了 rdlc 报告。现在以编程方式在reportviewer 中绑定报表,但在报表中只显示列而不显示数据...

下面的代码是我的存储过程:

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

reportviewer 表单加载事件中我的 VB.NET 代码...

        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()

在此我得到列标题但没有数据,数据在那里并在 sql management studio 中检查...

我尝试的另一个 VB.NET 代码是:

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()

这里出现错误:

我不知道它在说什么......

帮帮我。

【问题讨论】:

    标签: sql-server vb.net winforms rdlc dynamic-rdlc-generation


    【解决方案1】:

    目前,您已将DataSet 的新实例的DataTable 传递给报告数据源。所以很明显它应该是空的,你会看到没有任何数据的报告列标题。

    您应该将数据加载到DataTable,然后将其传递给报告。

    例如,如果您在表单上删除了TableAdapter,您可以使用这样的代码:

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

    还有

    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)
    

    【讨论】:

    • 天啊!我很高兴看到我的数据进入 ReportViewer Atlast……#cry…………非常感谢。是的,我没有使用Dim rds = New Microsoft.Reporting.WinForms.ReportDataSource("DataSet1", table),我直接将表格放在ReportDataSource1.Value = table 中并且它的工作......非常感谢@RezaAghaei ..
    • 实际上我混合了两个代码,所以有两个 ReportDataSource... 无论如何,我现在感到如​​释重负,再次感谢 @RezaAghaei
    猜你喜欢
    • 1970-01-01
    • 2014-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-11
    • 1970-01-01
    • 2014-05-22
    相关资源
    最近更新 更多