How to show images on an RDLC report

2019-03-26 07:14发布

问题:

I have an RDLC report and would like one of the columns in a table on this report to display images. The datasource for my report is a class that has a property called Image of type System.Drawing.Image.

On my report I dragged an image control onto the column and I set the following properties:

MIMEType:  image/png
Source:  Database
Value:  =Fields!Image.Value

When I run my report, I get a broken image.

I'd really appreciate any suggestions!

Thanks in advance :o)

回答1:

I don't know if this is the best solution, but I got it to work. It looks like the problem was in using System.Drawing.Image.

In my class, I created a new property called ImageByte of type byte[]. I didn't make a setter for ImageByte, but I made a getter that does the following:

MemoryStream ms = new MemoryStream();
Image.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
return ms.ToArray();

I updated my report to have =Fields!ImageByte.Value for the Value and now everything appears to be working as expected :o)



回答2:

Firstly, you take a new Form in your project on Load event you Wright this line below:

reportViewer1.LocalReport.EnableExternalImages = true; 

After that take reportViewer on that page and set smart tag of that, choose Design a new report and take an image control on it from ToolBox, set its property

Source = External Value = file:\D:Images\Sunset.jpg 

Note: Image(Sunset.jpg) saved in Images folder on D drive. You changed it according to your requirement.