RDLC报表显示存储于数据库的图片

图片以二进制存储于数据库表中。在显示RDLC报表时,把图片呈现出来。

好吧。

把存储过程写好:

复制代码
CREATE PROCEDURE [dbo].[usp_File_Select]
AS
SELECT [Afd_nbr],[Picture],[PictureType],[FileExtension] FROM [dbo].[ApiFileDemo]
GO
Source Code
复制代码

 

在网站中,创建一个实体,是程序从数据库获取数据:


复制代码
 public DataTable GetFiles()
        {
            sp.ConnectionString = DB.SqlConnectionString();
            sp.Parameters = null;
            sp.ProcedureName = "usp_File_Select";
            return sp.ExecuteDataSet().Tables[0];
        }
Source Code
复制代码



为站点添加一个rdlc报表,参考下面步骤:


 
细节如下:
在报表视图中,添加Table:


 

 为表格选择数据字段:

 

报表设计完成。现在创建一个ASPX网页来呈现这个RDLC报表:


紧跟下来,是在ASPX.cs写程序:

 

复制代码
 private void Data_Binding()
    {
        this.ReportViewer1.Reset();
        this.ReportViewer1.LocalReport.Dispose();
        this.ReportViewer1.LocalReport.DataSources.Clear();

        Microsoft.Reporting.WebForms.ReportDataSource rds = new Microsoft.Reporting.WebForms.ReportDataSource();
        rds.Name = "FileDataSet";

        FileEntity fe = new FileEntity();
        rds.Value = fe.GetFiles();

        this.ReportViewer1.LocalReport.ReportPath = Server.MapPath("~/Rdlc/ImageRpt.rdlc");
        this.ReportViewer1.LocalReport.DataSources.Add(rds);
        this.ReportViewer1.LocalReport.Refresh();
    }
Source Code
复制代码

 

预览一下看看结果如何:

 


数据没有显示出来,一直不停在Loading...

看来我们写少了程序,Insus.NET修改一下吧:

 


哈,哈,显示出来了:

 

虽然数据显示出来,但是在第二列中,图片没有显示,却显示#Error。还没有成功,还得继续努力:


最后看到想要的结果,图片显示出来了:

 

posted @   Insus.NET  阅读(2152)  评论(8编辑  收藏  举报
编辑推荐:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
阅读排行:
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 推荐几款开源且免费的 .NET MAUI 组件库
· 实操Deepseek接入个人知识库
· 易语言 —— 开山篇
· 【全网最全教程】使用最强DeepSeekR1+联网的火山引擎,没有生成长度限制,DeepSeek本体
历史上的今天:
2014-11-04 不够位数,左边使用$符号补足
2008-11-04 会员综合实例
2008-11-04 2007年开发的网站
点击右上角即可分享
微信分享提示