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

C# Report Viewer报表表格无数据显示问题求助

RDLC报表无数据显示排查方案
  • DataSet未填充数据
    代码仅实例化了DataSet1,但未往ds.Tables[0]中填充任何数据,空表绑定后自然无内容展示。需在绑定前添加数据填充逻辑,比如通过SqlDataAdapter从数据库查询数据并填充DataSet。

  • 报表路径设置冲突
    同时设置ReportEmbeddedResource和ReportPath会导致冲突,两个属性互斥只能选其一:

    • 若报表是项目嵌入资源,保留ReportEmbeddedResource并删除ReportPath,注意资源名称需完全匹配「命名空间+报表文件名」;
    • 若使用本地物理文件,保留ReportPath并删除ReportEmbeddedResource,且路径需正确转义(C#中用@"路径"或双反斜杠\\,原代码中的"C:\Users..."会因转义字符报错)。
  • 数据源名称不匹配
    RDLC报表内定义的数据集名称需与代码中ReportDataSource的第一个参数完全一致(大小写敏感)。若报表内数据集名称为其他值,会导致绑定失败无数据。可打开RDLC报表在「报表数据」窗口确认数据集名称。

  • DataTable索引错误
    确认ds.Tables[0]是包含数据的目标表,DataSet可能存在多个表,索引0对应的表可能并非所需。建议通过表名访问(如ds.Tables["你的表名"])避免索引错误。

  • 报表控件未正确绑定字段
    检查RDLC报表中的表格控件是否已将数据集字段拖入单元格,若仅添加空表格结构,即使数据源有数据也无法展示。

修正后的示例代码

// 1. 先填充DataSet数据
DataSet1 ds = new DataSet1();
using (SqlConnection conn = new SqlConnection("你的数据库连接字符串"))
{
    string query = "SELECT * FROM 目标数据表";
    SqlDataAdapter dataAdapter = new SqlDataAdapter(query, conn);
    dataAdapter.Fill(ds, "目标表名"); // 填充指定表
}

reportViewer1.Visible = true;
// 2. 二选一设置报表路径(示例使用本地文件)
reportViewer1.LocalReport.ReportPath = @"C:\Users\abd elrahman\Downloads\DatabaseProject11.0\DatabaseProject\LibrarianReport.rdlc";

// 3. 绑定数据源(确保数据集名称与报表内一致)
ReportDataSource dataSource = new ReportDataSource("DataSet1", ds.Tables["目标表名"]);
reportViewer1.LocalReport.DataSources.Clear();
reportViewer1.LocalReport.DataSources.Add(dataSource);
reportViewer1.RefreshReport();

内容的提问来源于stack exchange,提问作者Abd elrahman Mahmoud

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 07:47:33