如何在Crystal Report中显示从mysql中检索为blob的图像?

问题描述 投票:0回答:1

目前我们正在将数据保存在我们的数据库中作为blob,它们已被调整为小得多,不占用太多空间。我们需要在Crystal Report Viewer(Crystal Report Viewer 13)上显示一个图像,我从MYSQL数据库中检索它并将其转换为byte [],我的数据集有一个System.Byte []列,但Crystal Report Viewer仍然没有显示。我还没有找到解决方案。

我尝试过使用OLE对象但没有成功,并尝试将图片链接到数据集列,但没有成功。

我一直得到的结果是空白字段。还试图看看它是否在我将其导出为PDF时显示,但也显示空白。结果应该是存储在数据库中的图像

这是我从MYSQL数据库中检索blob的方法

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中得到了这个

c# asp.net-mvc crystal-reports
1个回答
0
投票

我不知道从mysql里面访问blob存储的方法。但是我确实有可能解决这个问题。

为什么不在数据库中存储图像的id。确保blob容器已读取公共访问权限。在报告内部,您可以使用“https://myblob.blob.azure.net/container/ {id}”之类的链接,然后将{id}替换为从数据库中检索到的ID?

© www.soinside.com 2019 - 2024. All rights reserved.