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

WinForms ReportViewer传入参数后无数据返回问题求助

ReportViewer空白报表问题排查与修复

问题背景

已为此问题困扰2小时,ReportViewer可正常执行但无法返回正确数据,执行后仅显示空白报表。

核心错误分析

你的代码存在4个关键问题,导致报表无数据:

  • 数据源绑定错误:ReportDataSource的第二个参数必须是实际数据集(如DataTable),而非数据集文件路径"PTRDataSet1.xsc"
  • 报表路径重复配置:ReportPath与ReportEmbeddedResource不可同时使用,二者选其一即可
  • 参数传递错误:给存储过程参数额外添加单引号,导致查询条件与数据库中字段值不匹配
  • 缺失数据获取逻辑:未执行存储过程从数据库拉取有效数据

修正后的代码示例

按钮点击事件(含完整数据获取逻辑)

private void button2_Click(object sender, EventArgs e)
{
    // 1. 从数据库执行存储过程获取数据
    DataTable dt = new DataTable();
    using (SqlConnection conn = new SqlConnection("你的数据库连接字符串"))
    {
        SqlCommand cmd = new SqlCommand("Proc1", conn);
        cmd.CommandType = CommandType.StoredProcedure;
        // 直接传递文本值,无需额外添加单引号
        cmd.Parameters.Add(new SqlParameter("@CustCode", textBox1.Text.Trim()));
        
        conn.Open();
        dt.Load(cmd.ExecuteReader());
        conn.Close();
    }

    // 2. 配置报表数据源(DataSet1需与RDLC内的数据集名称完全一致)
    reportViewer1.LocalReport.DataSources.Clear();
    reportViewer1.LocalReport.DataSources.Add(new ReportDataSource("DataSet1", dt));

    // 3. 配置报表路径(二选一,示例使用嵌入资源,需替换为你的项目命名空间)
    // 若为独立文件则使用:reportViewer1.LocalReport.ReportPath = @"Report1.rdlc";
    reportViewer1.LocalReport.ReportEmbeddedResource = "你的项目命名空间.Report1.rdlc";

    // 4. 设置报表参数(需与RDLC内的参数名称一致)
    ReportParameter p = new ReportParameter("CustCode", textBox1.Text.Trim());
    reportViewer1.LocalReport.SetParameters(p);

    // 刷新报表
    reportViewer1.RefreshReport();
}

存储过程代码(无需修改,确保字段类型匹配即可)

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[Proc1]
    @CustCode varchar(15)
AS
BEGIN
    SET NOCOUNT ON;

    SELECT * 
    FROM xxx..Shipment
    WHERE CustomerCode = @CustCode;
END

额外验证项

  • 确认RDLC报表内的数据集名称与代码中的DataSet1完全一致
  • 验证textBox1输入的客户编码在数据库Shipment表中存在
  • 检查数据库连接字符串是否正确,确保程序可正常连接数据库

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 03:52:53