2014-01-20 67 views
1

我有这样如何从数据库中获取特定图像?

<asp:Image ID="Image1" runat="server" Height="64px" Width="64px" 
    ImageUrl='<%# "SideImageHandler.ashx?ID=" + Eval("ID")%>'/> 

aspx页面上的图像控制和我imagehandler代码看起来像这样

public void ProcessRequest(HttpContext context) 
    { 
     SqlConnection con = new SqlConnection(); 
     con.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["GalleryConnectionString"].ConnectionString; 

     // Create SQL Command 
     Utility.ImageID = 2; 
     SqlCommand cmd = new SqlCommand(); 
     cmd.CommandText = "SELECT IMAGE FROM Icon WHERE (ID ="+ Utility.ImageID+")"; 
     cmd.CommandType = System.Data.CommandType.Text; 
     cmd.Connection = con; 

     SqlParameter ImageID = new SqlParameter("@ID", System.Data.SqlDbType.Int); 
     ImageID.Value = context.Request.QueryString["ID"]; 
     cmd.Parameters.Add(ImageID); 
     con.Open(); 
     SqlDataReader dReader = cmd.ExecuteReader(); 
     dReader.Read(); 
     context.Response.BinaryWrite((byte[])dReader["IMAGE"]); 
     dReader.Close(); 
     con.Close(); 
    } 

但它没有显示我的形象。它有什么问题?

此外,我有一个下载按钮,当用户点击它时,图像将被下载我更新不知道我把什么代码放在下载按钮点击事件?请提前引导我,谢谢

回答

3

这只是示例。Use

<asp:image id="Image1" imageUrl="SideImageHandler.ashx?ID=<someId>"/> 

在配置补充一点:

<httpHandlers> 
    <add verb="*" path="img/*" type="SideImageHandler"/> 
</httpHandlers> 

和处理程序:

public void ProcessRequest (HttpContext context) 
    { 
      int ID; 
      if (context.Request.QueryString["ID"] != null) 
       ID= Convert.ToInt32(context.Request.QueryString["ID"]); 
      else 
      throw new ArgumentException("No parameter specified"); 

     byte[] imageData= ;//get the image data from the database using the employeeId Querystring 
     Response.ContentType = "image/jpeg"; 
     Response.BinaryWrite(imageData); 

    } 
+0

@shahroz难道我把utility.ImageID到位someId的? – buddy

+0

@shahroz它显示我编译错误 – buddy

+0

@shahroz a beginer – buddy

相关问题