【问题标题】:getting .rdlc to work with dataset and report viewer让 .rdlc 使用数据集和报表查看器
【发布时间】:2016-12-07 15:22:57
【问题描述】:

在过去的 2 天里,我一直在努力让这份报告发挥作用。我浏览了很多网站等,但我仍然无法让这份报告发挥作用。

这是我采取的步骤:

  • 已创建新应用程序

  • 添加了 ReportViewer1

  • 添加了 Report1.rdlc

  • 创建了一个名为 DS1 的新数据集 - 我在其中连接到 Sql SErver,并获取了所有必需的表。

  • 创建了一个参数文本框/表格

    • 对于 ReportViewer1 - 将报告源更改为 WindowsApplication.Report1.Rdlc

    • 还将源代码(用于 reportViewer1)更改为 DS1

    • 在buttonClick下的form1中添加如下代码


Private Sub Button1_Click(sender As Object, e As EventArgs) Handles   Button1.Click

    Dim params(0) As Microsoft.Reporting.WinForms.ReportParameter
    params(0) = New Microsoft.Reporting.WinForms.ReportParameter("ReportParameter1", "HELLOOOOOOOOOOOOO")
    ReportViewer1.LocalReport.SetParameters(params)

    'Get Data
    Dim ReportDS As DataSet = GetData()
    Dim rds As ReportDataSource = New ReportDataSource("DS1", ReportDS.Tables(0))
    ReportViewer1.LocalReport.DataSources.Clear()
    ReportViewer1.LocalReport.DataSources.Add(rds)
    ReportViewer1.RefreshReport()

    Me.ReportViewer1.RefreshReport()

End Sub

Public Function GetData() As DataSet

    Dim ds As New DataSet
    Dim adapter As SqlDataAdapter
    Conn.Open()
    Dim sql As String = "Select FirstN, LastN from tblCustomers"

    adapter = New SqlDataAdapter(sql, Conn)
    adapter.Fill(ds)

    Return ds

End Function

请有人指出我正确的方向 - 我不确定我做错了什么!

如果我只执行 ReportParameter1 - 我可以在报告查看器中看到“HELLOOO”,所以我知道它有效,但是添加数据等它不起作用,我得到的错误是......

尚未为 DataSet1 提供数据源实例

【问题讨论】:

  • Dim rds As ReportDataSource = New ReportDataSource("DS1", ReportDS.Tables(0))这一行改成Dim rds As ReportDataSource = New ReportDataSource("DataSet1", ReportDS.Tables(0))行不行
  • @tuco 实际上它确实有效 - 所以现在它只显示我在 report1.rdls 中创建的标题(基本上添加了一个表格和标题 - 但我不知道如何引用 DataSet1就数据而言)
  • 那么,这个问题的问题解决了吗?现在你有一个新问题?
  • @tuco 对不起,我已经为此工作了好几天了........帮助一个兄弟
  • 我问这个是因为如果原始问题得到解决,我可以提供答案并且您可以勾选它,然后我们可以在新帖子中检查您的新问题。

标签: vb.net dataset


【解决方案1】:

根据您收到的错误消息并查看此行:

Dim rds As ReportDataSource = New ReportDataSource("DS1", ReportDS.Tables(0))

我可以得出结论,报表 DataSet 在 RDLC 中定义为“DataSet”,而您将其提供为“DS1”。

改为:

Dim rds As ReportDataSource = New ReportDataSource("DataSet1", ReportDS.Tables(0))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-10
    • 1970-01-01
    相关资源
    最近更新 更多