Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从mysql中检索blob并在asp.net c#和linq数据源中使用repeater显示_C#_Asp.net_Mysql_Linq To Sql_Repeater - Fatal编程技术网

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

从mysql中检索blob并在asp.net c#和linq数据源中使用repeater显示,c#,asp.net,mysql,linq-to-sql,repeater,C#,Asp.net,Mysql,Linq To Sql,Repeater,我已将图像手动存储在my category表中的字段categoryImage inLongblobdatatype inmysql数据库中。我添加了一个devart linq mysql模型来从数据库检索数据 我已经将一个linq数据源添加到一个中继器控件中,并希望直接从数据库中检索blob数据类型映像。当我写这段代码时 我得到一个System.Byte[]作为输出。有人建议我应该使用该方法将字节数组转换为图像 public System.Drawing.Image byteArra

我已将图像手动存储在my category表中的字段categoryImage inLongblobdatatype inmysql数据库中。我添加了一个devart linq mysql模型来从数据库检索数据

我已经将一个linq数据源添加到一个中继器控件中,并希望直接从数据库中检索blob数据类型映像。当我写这段代码时

我得到一个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(btye[])
有一些无效的参数。有人能帮我解决这个问题吗


提前谢谢

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

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

应该是:

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

另外,
Eval
方法返回
object
byteArrayToImage
方法参数的类型为
System.Byte[]
,因此必须将其强制转换为正确的类型

此外,如果您明确说明应用
byteArrayToImage
方法返回值的元素,则效果会更好。它可能无法在
System.Drawing.Image
的实例中正常工作

如果您试图创建
,该控件仅支持通过URL加载图像


另一种方法是为图像创建自定义HTTP处理程序,或者创建一个包含图像内容的文件,并将URL提供给
控件。

当图像存储在数据库中时,我应该使用HTTP处理程序,还是只需修改代码隐藏文件以使用system.web.ui.WebControl.image。。对于这一点,更好的方法是什么?因为我必须从长blob数据类型的数据库本身检索图像。对于这两种解决方案,您必须使用图像控件。就我个人而言,我将创建一个HTTP处理程序,该处理程序将接收一个GET参数,该参数指示从数据库获取哪个图像,然后加载并返回它。我会在需要显示这些图像的页面上使用这个处理程序。