RDLC + ReportViewer Control - как отображать изображения из базы данных? - PullRequest
1 голос
/ 02 декабря 2009

Я храню изображения GIF (при необходимости могу переключиться на BMP) в столбце varbinary в SQL 2008. Я хочу отобразить эти изображения в PDF-файле, отображаемом элементом управления ReportViewer из моего RDLC. Как я должен ссылаться на данные изображения в отчете, чтобы это работало?

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

Простая ссылка на поле, похоже, не помогает.

Ответы [ 2 ]

2 голосов
/ 03 декабря 2009

Так получается мой вопрос уже задавался до и отвечал сам. Отдай Тине свой голос!

Вместе с ответом Кевина это привело меня на правильный путь. В итоге я добавил свойство к своему классу результатов хранимых процедур Linq, которое вызывает HTML-обработчик изображения. Я изменил тип MIME на BMP, и он работает как шарм - теперь я могу удалить столбец базы данных, и мне не нужно прыгать через обручи, чтобы составить URL для сервиса изображений. Это свойство ниже я могу напрямую назначить для управления изображением.

public byte[] NDCLabel {
    get {
        return 
            BarcodeUtilities.ConvertImageToByteArray(
                BarcodeUtilities.GetBarcodeImage(this.ndc) 
                       ,System.Drawing.Imaging.ImageFormat.Bmp);
        }
    }
1 голос
/ 02 декабря 2009

Рассматривали ли вы написание обработчика HTTP для чтения изображения из базы данных и записи его в поток ответов? Затем вы можете настроить элемент управления изображением в своем отчете на использование URL-адреса в качестве источника, и он должен отображаться в выходных данных.

У меня нет реальных изображений в виде BLOB-объектов в базе данных для тестирования, но я сделал нечто похожее, когда мне нужно было отобразить расширенный текст отчета.

...