gpt4 book ai didi

c# - 如何解决错误 : This report requires a default or user-defined value for the report parameter '*'

转载 作者:太空宇宙 更新时间:2023-11-03 17:19:35 24 4
gpt4 key购买 nike

我收到错误:

此报告需要报告参数“*”的默认值或用户定义值。要运行或订阅此报告,您必须提供一个参数值。

即使正在填充值“*”,也偶尔会从我的报告服务器中获取。有什么想法或线索可以让我追踪到它吗?几点。

  • 我以 4 路异步方式运行报告(意味着 4 个线程同时生成报告)。
  • 报告有 2 个提供的参数(始终提供)和一个派生参数。
  • 我每个 session 运行 1,000 个报告,每个线程约 250 个报告。
  • 有时错误会在几秒钟后发生,有时会在数小时后发生。

    using System;
    using System.Globalization;
    using System.IO;
    using Cns.ReportExecution2005;

    public class PdfGenerator
    {
    private readonly ReportExecutionService reportExecutionService;
    public PdfGenerator(string executionServiceAddress)
    {
    // Create a new proxy to the web service
    this.reportExecutionService = new ReportExecutionService
    {
    Credentials = System.Net.CredentialCache.DefaultNetworkCredentials,
    Url = executionServiceAddress
    };
    }
    public Stream GenerateReport(string reportName, string format, ReportGeneratorParameter[] parameters)
    {
    if (reportName == null)
    {
    throw new ArgumentNullException("reportName");
    }
    if (format == null)
    {
    throw new ArgumentNullException("format");
    }
    this.reportExecutionService.LoadReport(reportName, null);
    if (parameters != null)
    {
    var executionParameters = new ParameterValue[parameters.Length];
    for (int i = 0; i < parameters.Length; ++i)
    {
    executionParameters[i] = new ParameterValue
    {
    Label = parameters[i].Name,
    Name = parameters[i].Name,
    Value = Convert.ToString(parameters[i].Value, CultureInfo.InvariantCulture)
    };
    }
    this.reportExecutionService.SetExecutionParameters(executionParameters, "en-us");
    }
    string extension;
    string encoding;
    string mimeType;
    Warning[] warnings;
    string[] streamIDs;
    byte[] results = this.reportExecutionService.Render(format, null, out extension, out encoding, out mimeType, out warnings, out streamIDs);
    return new MemoryStream(results);
    }
    }

最佳答案

对于寻找有关此主题的答案的其他人(谷歌搜索将我带到这里),它也可能是由定义为“来自查询”而不是“未查询”的参数引起的。然后,如果您传入的参数根据查询无效,则会出现此错误。例如,您有一个名为 CustomerId 的参数,它通过 Web 界面显示为 Select CustomerId, CustomerName from Customer假设数据库中的有效客户 ID 是 1 到 10。如果你在 c# 中传入一个值为 24 的参数,(即超出该范围)RS 就好像该参数从未传入一样,因为它检测到它不在有效范围内。希望这有帮助

关于c# - 如何解决错误 : This report requires a default or user-defined value for the report parameter '*' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/996775/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com