【问题标题】:RDL Report not renderingRDL 报告未呈现
【发布时间】:2021-08-16 07:56:21
【问题描述】:

生成报告时出现此错误。

在哪里可以设置我的 rdl 文件的连接?

AspNetCore.Reporting.LocalProcessingException:本地报表处理过程中出错。;报表处理过程中出错。 数据集“DataSet1”的查询执行失败。 用户 '' 登录失败。 ---> AspNetCore.ReportingServices.ReportProcessing.ProcessingAbortedException:报告处理过程中发生错误。

这是我的代码。

         const int extension = 1;

         var path = Path.Combine(_webHostEnvironment.WebRootPath, "Reports", "test.rdl");
           
         var parameters = new Dictionary<string, string> { { "rp1", "Test Value to parameter" } };

         var localReport = new LocalReport(path);
            
         var result = localReport.Execute(RenderType.Pdf, extension, parameters);
            
         return File(result.MainStream, "application/pdf");```

  [1]: https://i.stack.imgur.com/XkwzU.jpg

【问题讨论】:

    标签: c# asp.net reporting-services asp.net-core-mvc rdl


    【解决方案1】:

    如下更改您的代码:-

     
    private readonly IHostingEnvironment _webHostEnvironment;
    
    public HomeController( IHostingEnvironment webHostEnvironment)
     {
               
                _webHostEnvironment = webHostEnvironment;
                System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance);
    
     }
    
    
    
    
    
    public async Task<IActionResult> Print()
     {
    
     string mimetype = "";
    
     int extension = 1;
     
     var path = $"{this._webHostEnvironment.WebRootPath}\\Reports\\test.rdlc";
     Dictionary<string, string> parameters = new Dictionary<string, string>();
     parameters.Add("rp1", "Test Value to parameter");
               
     LocalReport localReport = new LocalReport(path);
    
     var result = localReport.Execute(RenderType.Pdf, extension, parameters, mimetype);
            
     return File(result.MainStream, "application/pdf"); 
    
    }
    

    另外,别忘了根据需要安装一些 NuGet 包。

    希望它能解决您的问题。有关更多详细信息和相关内容,您可以阅读这篇文章:-

    http://blog.geveo.com/IntegratingRDLCReportsToNetCoreProjects

    更新

    App.config

    <connectionStrings>
      <add 
        name="MyConnectionString" 
        connectionString="Data Source=DESKTOP-N41V6ER\SQLEXPRESS;Initial 
        Catalog=MyDatabase;User ID=userName;Password=password"
        providerName="System.Data.SqlClient"
      />
    </connectionStrings>
    
    

    用户 ID 和 密码 表示使用 SQL 凭据,而不是 Windows,但仍然非常简单 - 只需进入 SQL Server 的安全部分并创建一个新登录名。给它一个用户名和密码,并给它访问你的数据库的权限。

    再次更新(数据源连接)

    现在选择对象并点击下一步:-

    下面是一个简单报告的设计,它允许在您连接的数据库中显示(假设)产品数据。然后点击完成。

    然后点击确定按钮:-

    然后你会在数据集中找到你的数据库表:-

    现在您可以拖放您想要在报告文件中显示的数据。

    .................................................. ..................... ..................................................... ......

    再次更新(数据库连接)

    首先右键单击您的报告项目- => Add=>New Item 然后您将显示:-

    在上面添加一个实体数据模型到windows窗体项目。然后点击Add.then:-

    在上方,点击New Connection。

    在上方,点击Continue。

    上面,请提供您的服务器名称。我的机器只安装了一个(SQL server),我正在使用. 并在身份验证框中选择 SQL Server。

    在上面,然后点击Ok。你已经习惯性地选择了你想要的数据库名称。

    在上面,仔细输入您已经选择的数据库名称。

    在上面,我选择了我的产品表,因为我将展示它。然后点击finish

    【讨论】:

    • 非常感谢您的回复,但我应该将我的报告的 sql server 凭据放在哪里? rdl 文件有一个数据源。
    • @Clefor7 要将凭据放入您的连接字符串中,您必须在 web.xml 中更新您的代码。在您的表单文件中配置。我更新了我的答案,请检查。
    • 我已经有一个登录凭据并且它正在工作,但是当我打开报告时,这个错误很好地显示“数据集'DataSet1'的查询执行失败。用户''登录失败。看起来有我的 rdl 文件中没有连接。我尝试将凭据保存在报告中,但没有成功。
    • 我的问题是如何在c#中设置我的rdl文件的数据集连接。
    • @Clefor7 我再次更新了我的答案。我一步一步描述了如何在 c# 中的 rdlc 文件中设置数据集连接。请检查一下。
    猜你喜欢
    • 2017-05-18
    • 1970-01-01
    • 2014-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-30
    • 1970-01-01
    相关资源
    最近更新 更多