【发布时间】:2014-08-08 02:18:21
【问题描述】:
我有几个DataGridView 用户填写的表(我在这里不使用任何Dataset 或Database)。
我需要将它们传递给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