You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VS2022 WinForms VB中ReportViewer报错:无法创建Orders数据集数据读取器

问题

VS2022 + WinForms + Visual Basic开发环境下,ReportViewer运行时报错:Cannot create a data reader for data set "Orders"。

用户代码:

Public Class RptFrmDelivery
  Private Sub RptFrmDelivery_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    Me.Orders.Fill(Me.DayOldDataSet.Orders)
    ReportViewer2.ProcessingMode = ProcessingMode.Local
    ReportViewer2.LocalReport.ReportPath = "../../Report1.rdlc"
    ReportViewer2.LocalReport.DataSources.Clear()
    ReportViewer2.LocalReport.DataSources.Add(New ReportDataSource("Orders"))
    ReportViewer2.LocalReport.ReportEmbeddedResource = "RptFrmDelivery.Report1.rdlc"
    ReportViewer2.RefreshReport()
  End Sub
End Class
修复方案及排查点

核心问题分析

代码存在两个关键错误:

  1. 创建ReportDataSource时未传入实际数据集数据,报表无法获取有效数据源
  2. 同时设置ReportPath和ReportEmbeddedResource,两种报表加载方式冲突

修复后的代码示例

Public Class RptFrmDelivery
  Private Sub RptFrmDelivery_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    ' 填充数据集
    Me.Orders.Fill(Me.DayOldDataSet.Orders)
    
    ' 配置本地报表模式
    ReportViewer2.ProcessingMode = ProcessingMode.Local
    
    ' 二选一:使用嵌入式资源加载报表(需确保报表生成操作设为嵌入资源)
    ReportViewer2.LocalReport.ReportEmbeddedResource = "你的项目命名空间.Report1.rdlc"
    ' 或者使用文件路径加载报表(发布时需包含报表文件)
    ' ReportViewer2.LocalReport.ReportPath = "../../Report1.rdlc"
    
    ' 绑定数据源:传入数据集的DataTable对象
    ReportViewer2.LocalReport.DataSources.Clear()
    ReportViewer2.LocalReport.DataSources.Add(New ReportDataSource("Orders", Me.DayOldDataSet.Orders))
    
    ' 刷新报表
    ReportViewer2.RefreshReport()
  End Sub
End Class

额外排查点

  • 数据集名称匹配:确认报表设计器中数据集名称与代码里的"Orders"完全一致(大小写敏感)
  • 数据集填充验证:在Fill方法后加断点,检查DayOldDataSet.Orders.Rows.Count是否大于0,确保数据已正确填充
  • 嵌入式资源配置:右键报表文件→属性,将“生成操作”设为“嵌入的资源”,并确认ReportEmbeddedResource的命名空间格式正确(项目根命名空间+报表所在路径+报表文件名)
  • 报表路径正确性:若使用ReportPath,确保相对路径指向正确文件,可临时改用绝对路径测试

内容的提问来源于stack exchange,提问作者Wilest

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 10:00:16