繁体   English   中英

从mysql检索blob并在asp.net c#和linq数据源中使用转发器显示

[英]retrieve blob from mysql and display using repeater in asp.net c# and linq datasource

我已经在mysql数据库的类别表中的Longblob数据类型的categoryImage字段中手动存储了图像。 我添加了一个devart linq-mysql模型来从数据库检索数据。

我已将linq数据源添加到转发器控件,并希望直接从数据库中检索blob数据类型图像。 当我写这段代码时
<%# Eval("CategoryImage" %>

我得到一个System.Byte []作为输出。 有人给我一个建议,我应该使用该方法将字节数组转换为图像

    public System.Drawing.Image byteArrayToImage (System.Byte[] ByteInArray)
    {
        MemoryStream ms = new MemoryStream(ByteInArray);
        System.Drawing.Image returnimage = System.Drawing.Image.FromStream(ms);
        return returnimage;

    }              

当我写这段代码<%# byteArrayToImage(Eval("CategoryImage") %> ,我遇到一个错误,即byteArrayToImage(btye[])有一些无效的参数。有人可以帮助我解决这个问题。

提前致谢..

首先,您的标签似乎格式不正确:

<%# byteArrayToImage(Eval("CategoryImage") %>

应该:

<%# byteArrayToImage(Eval("CategoryImage")) %>

同样, Eval方法返回objectbyteArrayToImage方法参数的类型为System.Byte[] ,因此您必须将其byteArrayToImage转换为正确的类型。

此外,最好弄清楚要应用byteArrayToImage方法返回值的元素。 它可能不适用于System.Drawing.Image的实例。

如果您试图基于System.Drawing.Image创建<asp:Image>控件,则该控件将仅能通过URL加载图像,因此将无法正常工作

替代方法是为图像创建自定义HTTP处理程序,或创建包含图像内容的文件,然后将URL提供给<asp:Image>控件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM