Vb.net 如何在没有数据库或数据集的情况下将数据从DataGridView传递到ReportViewer中的表

Vb.net 如何在没有数据库或数据集的情况下将数据从DataGridView传递到ReportViewer中的表,vb.net,datagridview,dataset,reportviewer,Vb.net,Datagridview,Dataset,Reportviewer,我有一些DataGridView表,用户填写这些表,我在这里不使用任何数据集或数据库。 我需要将它们传递给ReportViewer,我希望报表中的表与表单中的表完全相同,没有任何更改 我试过类似的方法,但不起作用: Dim rds As New ReportDataSource("rds1", Form1.dgv1.DataSource) Me.ReportViewer1.LocalReport.DataSources.Add(rds) 在report1.rdlc中添加了一个表,并将其数据集名

我有一些DataGridView表,用户填写这些表,我在这里不使用任何数据集或数据库。 我需要将它们传递给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表中创建一个数据集


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

您应该向报表.rldc数据源列表中添加一个数据集,并将列拖放到报表元素表、tablix、list等中


请记住,您可以将项目中的任何类型的对象作为数据源添加到报表中,基本上是您创建的任何公共类。导入的名称和类型将取自类属性。

您是否在报表本身中创建了实际的数据集定义?它应该包含dgv数据源名称和类型所需的所有字段。您的意思是:Dim dt As New DataTabledt1 With dt.Columns.Addcol1.Columns.Addcol2结束于Form1.dgv1.Rows dt.Rows.Adddr.Cellscol1.Value中的每个dr As datagridview行,dr.Cellscol2.Value Next Dim rds作为新的ReportDataSourcedgv1,dt Me.ReportViewer1.LocalReport.DataSources.Addrds仍然获得相同的错误OK,修复了它,我所做的:1我添加了一个数据集MyNewDataSet项目>添加新项>数据集,并创建了一个数据表,其中列的名称与此数据集中我的dgv中的列的名称相同2我将此数据集添加到报表>数据源>添加3右键单击报表中的表>属性>从数据集名称下拉列表中选择MyNewDataSetName 4个拖放列从解决方案资源管理器>数据源>MyNewDataSetName到报告中的表,就这样,感谢您的帮助VLAN:嘿,szooky,我照您说的做了,但仍然有问题。无法从DatagridView获取数据