我有许多图像存储在Blob
MySQL InnoDB 数据库内的类型字段中,以及与存储在另一个字段中的这些图像有关的其他信息。
如您所知,在 DevExpress 版本 11.2 中分发的带状网格视图,在带状网格列的帮助下,能够呈现多种类型的数据,尤其是图像。
到目前为止,MySqlDataReader
我能够DataSet
通过拥有 .DataSource
BandedGridView
但是,如您所知,当您从 MySQL 加载 Blob 字段时,您会返回一个包含文件内容的字节数组,在本例中是相关图像。
我希望 DevExpress 能够识别二进制数据并意识到它是一个图像文件,并在分配给处理数据库字段的列下的所有行中自动渲染图像Image
,但是它没有,现在我想到了,它是可能是牵强附会的希望。
不是渲染图像,列的每一行显示一个简单的字符串输出,引用字段包含的对象类型。在这种情况下,由于它是文件的二进制表示,因此它输出System.Byte[]
.
我搜索了 DevExpress 文档,通常在网络上,没有找到可以解决我的问题的明确内容。有一个我想要的结果与 DevExpress 一起打包的示例,该解决方案在 WinForms -> XtraGrid 部分下名为“GridMainDemo”。运行演示后,更改为 Alternate Views 和 Banded Grid View,然后只需单击图片列下的任何行,您将看到我想要的结果的清晰示例。
当然,我已经查看了该演示的来源,但是我不能说澄清和解释是构建此类演示的 DevExpress 团队的明确目标,不幸的是我没有太多时间深入研究它。但是,从我所看到的情况来看,这个演示与图像作为文件存储在本地的点不同,并且已经在某种存储库中正确引用,这对我的问题没有多大帮助。
为了完成我的问题,抱歉读了很久,只是想清楚地了解我的目标是什么,阻碍的是什么,以及所有事情是如何设置的,以便找到实现目标的方法。
现在长话短说。如何将图像从 MySQL Blob 字段加载到带状网格视图中的列中并在加载后或用户单击字段单元格时呈现它的简单示例,这将是理想的,有了它我将能够理解和执行必要的代码,以便我的视图也呈现我的图像。
我最大的感谢,真的。
注意:不幸的是,不能选择使用本地甚至远程存储的文件。图像必须保存在数据库的范围内。