RDLC + ReportViewer Control - 如何显示数据库中的图像?

时间:2009-12-02 19:50:50

标签: image reportviewer rdlc

我正在SQL 2008中的varbinary列中存储GIF图像(我可以根据需要切换到BMP)。我想在RDLC中使用ReportViewer控件呈现的PDF中显示这些图像。 如何在报告中引用图像数据以使其工作?

=First(Fields!sh_lot_num_barcode_image.Value, "DataSet1"))

简单的字段引用似乎不起作用。

2 个答案:

答案 0 :(得分:2)

事实证明my question was already asked before并且自我回答。给蒂娜你的投票!

与凯文的回答一起,它让我走上了正确的道路。我最终在我的Linq存储过程结果类中添加了一个属性,该类调用图像HTML Handler。我将MIME类型更改为BMP,它就像一个魅力 - 我现在可以删除数据库列,而不需要跳过箍来组成图像服务的URL。我下面的这个属性可以直接分配给图像控件。

public byte[] NDCLabel {
    get {
        return 
            BarcodeUtilities.ConvertImageToByteArray(
                BarcodeUtilities.GetBarcodeImage(this.ndc) 
                       ,System.Drawing.Imaging.ImageFormat.Bmp);
        }
    }

答案 1 :(得分:1)

您是否考虑过编写HTTP处理程序来从数据库中读取图像并将其写入响应流?然后,您可以在报表中设置图像控件,以使用URL作为源,并在输出中进行渲染。

我没有任何实际的图像作为数据库中的blob进行测试,但是当我需要在报表上呈现富文本时,我做了类似的事情。