2011-02-25 85 views
0

如何从MYSQL数据库中检索图像。在ASP.NET中显示图像

要显示在文本框文本,我们使用textbox.TEXT - >我们使用.TEXT显示文本

同样如何显示从MySQL数据库中检索的图像?

IMAGE1 [_ __] =博士[0] [_ ____]。。

什么在上面的空白??充满...

我用BLOB存储图像。

+0

您需要有一个额外的页面或处理程序/操作来获取图像。然后,image1.src就像/ Home/Image?id = 1001,在HomeController中有一个方法Image(int id)和一个二元ActionResult。在该方法中,您可以在此链接中检索图像:http://www.codeproject.com/KB/aspnet/image_asp.aspx – rene 2011-02-25 21:33:47

回答

1

添加通用处理程序到您的Web窗体应用程序,并在ProcessRequest方法,您需要为数据库查询相关文件/二进制数据。你通常会通过querystring选择正确的图像。下面的代码演示如何查询数据库,并返回二进制数据:

using (DbConnection conn = new DbConnection(connect)) 
{ 
    if (context.Request.QueryString["id"] != null) 
    { 
    DbCommand cmd = new DbCommand(qry, conn); 
    cmd.Parameters.AddWithValue("", context.Request.QueryString["id"]); 
    conn.Open(); 
    using (DbDataReader rdr = cmd.ExecuteReader()) 
    { 
     if (rdr.HasRows) 
     { 
     rdr.Read(); 
     context.Response.AddHeader("content-disposition", "attachment; filename=" + rdr["FileName"]); 
     context.Response.ContentType = rdr["MimeType"].ToString(); 
     context.Response.BinaryWrite((byte[])rdr["Blob"]); 
     } 
    } 
    } 
} 

您需要的的DbConnection,DbCommand和和DbDataReader更改为您的供应商喜欢(ODBC或MySQL)的类型,然后点的ImageUrl图像控制到的HttpHandler的属性:

Image1.ImageUrl = “?MyHandler.ashx ID =” +什么的图像ID。

2

您可以通过创建一个控制器来服务你的图像等,然后在你看来,你可以只添加通话内嵌做到这一点:

<img src='<%= Url.Action("GetImage", "Image", new { id = yourImageIdHere }) %>' /> 

public class ImageController 
{ 
    public ActionResult GetImage(int id) 
    { 
     var image = GetTheRawBinaryImageFromTheDB(); 
     return File(image, "image/jpg"); 
    } 
}