Поместить изображение в просмотр списка из базы данных, используя varbinary (max)? - PullRequest
0 голосов
/ 03 ноября 2019

У меня есть выпадающий список с марками автомобилей, поэтому, когда я выбираю один, я нажимаю кнопку «поиск» и получаю данные в виде списка. Он работает нормально, но проблема в изображении или фотографии, я не знаю, как заставить это работать.

Ниже я представляю свой код, мне нужно его завершить. Я использую C # ASP.NET, SQL Server.

Это код в шаблоне.

<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>

Это код в кнопке поиска в WebForm.aspx.cs:

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;
    }
}

Это код в HttpImageHandler.ashx:

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; }
    }
}

Это код для Web.config:

<httpHandlers>
    <add verb="*" path="*.ashx" type="WebAdminEmpleados.HttpImageHandler"/>
</httpHandlers>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...