使用LINQ检索数据库,从图像到SQL(Retrieving an image from datab

2019-08-01 01:54发布

在我的数据库我已存储的图像中的“图像”的数据类型,显示为二进制码。 我现在想从一列检索所有图像和diplay他们用C#一个asp.net页面上。

databaseDataContext db = new databaseDataContext();

    var images = from Picture p in db.Pictures
                 select p.pictureThumb;

然后我用这个:

    foreach (Picture p in images)
    {
        galleryImages.Controls.Add(p);
    }

但是,这并不工作,因为二进制不能被转换为图片。 我用Google搜索,发现这个,我要转换为字节,然后对图像? 我无法找到如何做,虽然例子。

Answer 1:

这应该这样做:

databaseDataContext db = new databaseDataContext();

var images = from p in db.Pictures
             select Image.FromStream(new MemoryStream(p.pictureThumb.ToArray());
foreach (Image image in images)
{
    galleryImages.Controls.Add(image);
}

需要注意的是Image.FromStream采用流的所有权-它只是一个MemoryStream ,无论如何,但请确保您处理的图像,由于种种原因。


编辑:啊......我没有意识到这是为ASP.NET。 这使得事情更难 - 因为HTML是要包含URL,然后你就需要能够稍后获取数据。

做一个图片有某种类型的ID? 如果是这样,撷取,而不是实际的数据,然后建立一个URL,它能够成为基于ID的任何缩略图(从数据库中获取它,只是用适当的内容类型的服务的话)。



文章来源: Retrieving an image from database with Linq to SQL