9

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)

George Kagan
  • 5,913
  • 8
  • 46
  • 50
Tina Orooji
  • 1,842
  • 3
  • 15
  • 14

2 Answers2

10

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)

Tina Orooji
  • 1,842
  • 3
  • 15
  • 14
4

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.

Sas
  • 2,473
  • 6
  • 30
  • 47