【问题标题】:How to pass data from DataGridView to table in ReportViewer without Database or Dataset如何在没有数据库或数据集的情况下将数据从 DataGridView 传递到 ReportViewer 中的表
【发布时间】:2014-08-08 02:18:21
【问题描述】:

我有几个DataGridView 用户填写的表(我在这里不使用任何DatasetDatabase)。 我需要将它们传递给ReportViewer,我希望报告中的表格与表格中的表格完全相同,完全没有任何变化。

我尝试了类似的方法,但它不起作用:

Dim rds As New ReportDataSource("rds1", Form1.dgv1.DataSource)
Me.ReportViewer1.LocalReport.DataSources.Add(rds)

并在 report1.rdlc 中添加了一个表并将其数据集名称设置为 rds1 但它会产生错误

The table ‘table1’ refers to an invalid DataSetName ‘rds1’. 

所以我想我需要从我的DataGridView 表中创建一个DataSet

你建议我怎么做?否则,有没有更简单的方法可以将表格传递给报表?

【问题讨论】:

  • 您是否在报表本身中创建了实际的数据集定义?它应该包含您的 dgv 数据源所期望的所有字段(名称和类型)
  • 你的意思是这样的: Dim dt As New DataTable("dt1") With dt .Columns.Add("col1") .Columns.Add("col2") End With For Each dr As DataGridViewRow In Form1.dgv1.Rows dt.Rows.Add(dr.Cells("col1").Value, dr.Cells("col2").Value) Next Dim rds As New ReportDataSource("dgv1", dt) Me.ReportViewer1 .LocalReport.DataSources.Add(rds) 仍然出现同样的错误
  • 好的,修复它,我做了什么: 1) 我添加了一个 DataSet MyNewDataSet (Project > Add New Item > DataSet) 并创建了一个 DataTable,其列的名称与我的 dgv 在此 DataSet 2 中的名称相同)我将此数据集添加到报表(报表>数据源>添加)3)右键单击报表中的表>属性>从数据集名称下拉列表中选择MyNewDataSetName 4)将列从解决方案资源管理器>数据源> MyNewDataSetName拖放到报表中的表中,仅此而已它,感谢Vland的帮助:)
  • 嘿 szooky,我照你说的做了,但还是有问题。无法从 DatagridView 获取数据

标签: vb.net datagridview dataset reportviewer


【解决方案1】:

您应该将数据集添加到您的报告.rldc数据源列表中,然后将列拖放到您的报告元素(表格、tablix、列表等)中

请记住,您可以将项目中的任何类型的对象作为数据源添加到报告中(基本上是您创建的任何Public Class)。导入的名称和类型将从类属性中获取。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-21
    • 2021-04-14
    相关资源
    最近更新 更多