Управление RDLC + ReportViewer - как отображать изображения из базы данных?
-
11-09-2019 - |
Вопрос
Я сохраняю GIF-изображения (при необходимости я могу переключиться на BMP) в столбце varbinary в SQL 2008.Я хочу отобразить эти изображения в формате PDF, отображаемом элементом управления ReportViewer из моего RDLC.Как я должен ссылаться на данные изображения в отчете, чтобы это сработало?
=First(Fields!sh_lot_num_barcode_image.Value, "DataSet1"))
Простая ссылка на поле, похоже, не помогает.
Решение
Так оно и получается мой вопрос уже был задан раньше и получил ответ на свой вопрос.Отдайте свой голос Тине!
Вместе с ответом Кевина это навело меня на правильный след.В итоге я добавил свойство к своему классу результатов хранимой процедуры Linq, которое вызывает HTML-обработчик изображения.Я изменил тип MIME на BMP, и это работает как по волшебству - теперь я могу удалить столбец базы данных, и мне не нужно перепрыгивать через обручи, чтобы составить URL-адрес для сервиса изображений.Это свойство, приведенное ниже, я могу напрямую назначить элементу управления изображением.
public byte[] NDCLabel {
get {
return
BarcodeUtilities.ConvertImageToByteArray(
BarcodeUtilities.GetBarcodeImage(this.ndc)
,System.Drawing.Imaging.ImageFormat.Bmp);
}
}
Другие советы
Рассматривали ли вы возможность написания HTTP-обработчика для считывания изображения из базы данных и записи его в поток ответов?Затем вы можете настроить элемент управления изображением в своем отчете на использование URL-адреса в качестве источника, и он должен отображаться в выходных данных.
У меня нет никаких реальных изображений в виде больших двоичных объектов в базе данных для тестирования, но я сделал что-то вроде подобного, когда мне нужно было отобразить форматированный текст в отчете.