Как отобразить изображения в Crystal Report, которые получены как BLOB-объектов из MySQL? - PullRequest
0 голосов
/ 24 апреля 2019

В настоящее время мы сохраняем изображения в нашей базе данных, поскольку их размеры были изменены, чтобы быть намного меньше, чтобы не занимать все слишком много места. Нам нужно отобразить изображение в Crystal Report Viewer (Crystal Report Viewer 13), и я извлекаю его из базы данных MYSQL и преобразовываю в байт [], а в моем наборе данных есть столбец System.Byte [], но Crystal Report Viewer до сих пор ничего не показывает. Я еще не нашел решение.

Я пытался использовать объекты OLE, но безуспешно, и пытался связать изображение со столбцом набора данных, но безуспешно.

Я получаю пустые поля. Также пытался увидеть, появляется ли он при экспорте в PDF, но там также отображается пустой. Результатом должно быть изображение, которое хранится в базе данных

Вот так я получаю BLOB-объект из базы данных MYSQL

clsDataAccess getData = new clsDataAccess(System.Configuration.ConfigurationManager.ConnectionStrings["PAW.Data"].ConnectionString);
                getData.SQLCommand.CommandText = "SELECT * from userimages where UserName = ?";
                getData.SQLCommand.Parameters.Add("", OdbcType.VarChar).Value = UserName;
                System.Data.DataTable tblData = getData.PopulateDataTableWithParameters();
                if (tblData.Rows.Count > 0)
                {
                    foreach (System.Data.DataRow item in tblData.Rows)
                    {
                        userImage.Name = item["Name"].ToString();
                        userImage.ContentType = item["Content"].ToString();
                        object LogoTest = item["Data"];
                        userImage.Data = (byte[])item["Data"];
                    }
                }

Когда я проверяю изображение, я получаю это в консоли http://localhost:31720/Areas/Administration/ReportsASPX/CrystalImageHandler.aspx?dynamicimage=cr_tmp_image_14fda631-5f94-4fa2-8419-f95f447fe08b.png

1 Ответ

0 голосов
/ 24 апреля 2019

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

Почему бы не сохранить идентификатор для изображения в базе данных. Убедитесь, что контейнер BLOB-объектов имеет открытый доступ для чтения. Внутри отчета вы можете иметь ссылку типа "https://myblob.blob.azure.net/container/{id}",, а затем просто заменить {id} идентификатором, полученным из базы данных?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...