2010-09-21 103 views
0

有这样的事吗?!快速查询以检索图像加载的二进制图像?

因此,例如,在我的图像加载我有以下连接到一个表“图像”是一个二进制图像数据集。

protected void Image1_Load1(object sender, EventArgs e) 
    { 
     myent logo = new myent(); 

     var query = (from p in logo.tblLogoes 
        where p.Id == id && p.Id2 == id2 
        select p.Image).First(); 

     return query. 
    } 

我需要在这里返回来填充图像?

我有趣的感觉,它不会那么简单!

任何指针感激地收到。

回答

0

我会创建一个Http处理程序来执行此操作。一些浏览器支持在标记中写入二进制图像,但这是非标准的,所以我会建议不要这样做。

如果你可以从你的查询字节做这样的事情:

然后创建的处理程序。

public class IISHandler : IHttpHandler 
{ 
    public bool IsReusable 
    { 
     get { return true; } 
    } 

    public void ProcessRequest(HttpContext context) 
    { 
     context.Response.ContentType = "image/jpeg"; 
     myent logo = new myent(); 

     var query = (from p in logo.tblLogoes 
        where p.Id == id && p.Id2 == id2 
        select p.Image).First(); 
     byte[] bytes = query.bytes; 
     context.Response.OutputStream.Write(bytes, 0, bytes.Length); 
    } 
} 

注册手柄:

<system.web> 
<httpHandlers> 
    <!-- ImageHandler handlers --> 
    <add verb="*" path="myimages/*.jpg" type="namespace.IISHandler, namespace" /> 
</httpHandlers> 

... 

在您的网页让<img>标记点的处理程序。

<img src="myimages/someimage.jpg"> 

你的代码很少显示你如何定位图像,id的名字?很可能你想传递一些标识符给处理程序,所以你可以提供正确的图像。

查看http://msdn.microsoft.com/en-us/library/ms972953.aspx,获取有关使用http处理程序提供动态内容的更深入示例。