Tenho um Handler e uma pagina que desejo exibir algumas imagens, estas ficarão em uma Grid.Fiz um código, do qual me parece estar certo, porém, de forma alguma mostra a imagem na tela.
Não da erro, mas a imagem não aparece.
No banco, o campo imagem teste como "image" e "varcharbinary(max)".
Handler.ashx
public void ProcessRequest(HttpContext context)
{
if (context.Request.QueryString["ImagemID"] == null) return;
string connStr = ConfigurationManager.ConnectionStrings["imagensConnectionString"].ToString();
string ImagemID = context.Request.QueryString["ImagemID"].ToString();
using (SqlConnection conn = new SqlConnection(connStr))
{
using (SqlCommand cmd = new SqlCommand("SELECT Imagem from tabImagem WHERE ImagemID = @ImagemID", conn))
{
cmd.Parameters.Add(new SqlParameter("@ImagemID", ImagemID));
conn.Open();
using (SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection))
{
reader.Read();
context.Response.BinaryWrite((Byte[])reader[reader.GetOrdinal("Imagem")]);
context.Response.Flush();
reader.Close();
}
}
}
}
mostrar_imagem.aspx
private void BindFiles()
{
string cnString = "Data Source=localhost;Initial Catalog=imagens;Persist Security Info=True;User ID=sa;Password=1234";
DataTable table = new DataTable();
using (SqlConnection conn = new SqlConnection(cnString))
{
string sql = "SELECT ImagemID,Imagem,Tipo,Descricao FROM tabImagem";
using (SqlCommand cmd = new SqlCommand(sql, conn))
{
using (SqlDataAdapter ad = new SqlDataAdapter(cmd))
{
ad.Fill(table);
}
}
}
GridView1.DataSource = table;
GridView1.DataBind();
}
GRID
<asp:GridView ID="GridView1" runat="server" EnableViewState="false" AutoGenerateColumns="false">
<Columns>
<asp:BoundField HeaderText="ImagemID" DataField="ImagemID" />
<asp:BoundField HeaderText="Descricao" DataField="Descricao" />
<asp:TemplateField HeaderText="Conteudo">
<ItemTemplate>
<img src="Handler.ashx?ImagemID=<%# Eval("ImagemID")%>" alt="<%# Eval("Imagem") %>" />
</ItemTemplate>
</asp:TemplateField>
<%-- <asp:TemplateField HeaderText="Ativo">
<ItemTemplate>
<img src="Handler.ashx?ImagemID=<%# Eval("ImagemID")%>>" alt="<%# Eval("Imagem") %>>" />
</ItemTemplate>
</asp:TemplateField>--%>
</Columns>
</asp:GridView>
Por favor..ajudaaaaa..