C sharp - ¿Cómo poner imagen imagen en un listview desde una base de datos usando varbinary (max)?

 
Vista:
sin imagen de perfil

¿Cómo poner imagen imagen en un listview desde una base de datos usando varbinary (max)?

Publicado por Luis (3 intervenciones) el 03/11/2019 03:41:49
Estoy perdido,no se que hacer.Esta incompleto.El listview funciona,se llena con los datos,a excepción de las fotos.







Este es el codigo en el template:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
asp:ListView ID="ListView1" runat="server" >
         <ItemTemplate>
             <div class="hola">
                      <table>
       <tr><td>
 
    <asp:Image ID="Image1" runat="server" ImageUrl='<%# Eval("Codigo", "HttpImageHandler.ashx?id={0}") %>' Width="100px" Height="100px" /></td></tr>
 
 
  <tr><td><h3><%# Eval("Marca") %></h3></td></tr>
   <tr><td><h4><%# Eval("Modelo") %></h4></td></tr>
     <tr><td><h4><%# Eval("Color") %></h4></td></tr>
                     </table>
                           </div>
                       </ItemTemplate>
                         </asp:ListView>



Este es el codigo para el botonbuscar en "WebForm.aspx.cs"

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
protected void btnbuscar_Click(object sender, EventArgs e)
     {
 
        SqlConnection conn = new SqlConnection(@"Data Source = MEGATRON;
         Initial Catalog = RentCar; Integrated Security = True");
        try
        {
 
            SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM Autos
   WHERE Marca like '" + DropDownListMarcas.SelectedItem.Text + "%'", conn);
 
 
            DataTable dt = new DataTable();
 
            da.Fill(dt);
 
            ListView1.DataSource = dt;
            ListView1.DataBind();
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }



Este es el codigo para el "HttpImageHandler.ashx"


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
public class HttpImageHandler1 : IHttpHandler
 {
 
    public void ProcessRequest(HttpContext context)
    {
        byte[] imagen = ; //aqui recuperas la imagen de la tabla
 
    // Arma el contexto que enviara la imagen en el response
    // se usa el nombre del empleado para el nombre del archivo que se envia
    //
        context.Response.Clear();
        context.Response.AddHeader("content-disposition", string.Format("attachment;filename={0}", "nombreimagen"));
        context.Response.ContentType = "image/jpg";
 
 
        // Se escribe en el response la imagen asociada al empleado
        //
        context.Response.BinaryWrite(imagen);
        context.Response.End();
    }
 
    public bool IsReusable
    {
        get
        {
            return false;
        }
    }
}



Este es el codigo para el "Web.config"

1
2
3
<httpHandlers>
 
<add verb="*" path="*.ashx" type="WebAdminEmpleados.HttpImageHandler"/>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Wilfredo Patricio Castillo
Val: 707
Oro
Ha mantenido su posición en C sharp (en relación al último mes)
Gráfica de C sharp

¿Cómo poner imagen imagen en un listview desde una base de datos usando varbinary (max)?

Publicado por Wilfredo Patricio Castillo (416 intervenciones) el 04/11/2019 22:30:16
Tendrías que evaluar otra alternativa, ya que guardar las imágenes en la BD, te hará crecer muy rápido tu base y conforma vayas metiendo mas registros, la cosa irá empeorando al momento de hacer las consultas.

Para visualizar una imagen desde la bd, lo que debes hacer es convertir un array de bytes a imagen, esa es la manera de lograrlo.

Saludos cordiales,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

¿Cómo poner imagen imagen en un listview desde una base de datos usando varbinary (max)?

Publicado por Luis (3 intervenciones) el 06/11/2019 04:18:19
Descuida,ya lo lo logré.Entiendo lo que quieres decir con eso de guardar las imágenes en la BD. Te digo que solo es para un proyecto final en la universidad,nada de que preocuparse.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar