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