Display ASP.NET Repeater image via SQL database

Asked

Viewed 41 times

0

I can make all the data appear waiting for the picture someone can help me?

Code

<div class="container-fluid">
    <div class="titulo">
        <h2>Gestor de Cursos</h2>
        <asp:Repeater ID="rpt_curso" runat="server" >
            <HeaderTemplate>

                <table border="1">
                        <tr>
                            <td>
                                <b>Cod.Curso</b>
                            </td>
                            <td>
                                <b>Curso</b>
                            </td>
                            <td>
                                <b>Descricao</b>
                            </td>
                            <td>
                                <b>Preco</b>
                            </td>
                            <td>
                                <b>Imagem</b>
                            </td>
                            
                        </tr>
            </HeaderTemplate>
            
            
            <ItemTemplate>
                <tr>
                            <td>
                                <%# Eval("cod_produto")%>
                            </td>
                            <td>
                                <%# Eval("produto")%>
                            </td>
                            <td>
                                <%# Eval("descricao")%>
                            </td>
                            <td>
                                <%# Eval("preco")%>
                            </td>
                       
                            <td>  
                                
                                 <asp:Image ID="Image1" runat="server"  ImageUrl='<%# Eval("dados") %>"'/>                  
                            </td>
                        </tr>

            </ItemTemplate>

            <FooterTemplate>
                </table>

            </FooterTemplate>
        </asp:Repeater>
        <br />
    </div>
</div>

Code behind

protected void Page_load(Object Sender, Eventargs and) { Sqlconnection myConn = new Sqlconnection(Configurationmanager.Connectionstrings["Sys4noobsconnectionstring"].Connectionstring); Sqlcommand myCommand = new Sqlcommand();

        myCommand.CommandText = "SELECT produto.cod_produto, produto.descricao, produto.produto, produto.preco, ficheiro.dados FROM ficheiro INNER JOIN produto ON ficheiro.cod_ficheiro = produto.cod_ficheiro";

        myCommand.Connection = myConn;
        myConn.Open();
        SqlDataReader reader = myCommand.ExecuteReader();


        List<curso> lista = new List<curso>();

        while (reader.Read())
        {
            curso obj = new curso();
            obj.cod_produto = reader.GetInt32(0);
            obj.produto = reader.GetString(1);
            obj.descricao = reader.GetString(2);
            obj.preco = reader.GetDecimal(3);
            obj.imagem = "data:image/png;base64," + Convert.ToBase64String((byte[])reader["dados"]);

            lista.Add(obj);
        }

      
        reader.Close();
        myConn.Close();


        myConn.Close();

        rpt_curso.DataSource = lista;
        rpt_curso.DataBind();

    }

    public class curso
    {
        public int cod_produto { get; set; }
        public string produto { get; set; }
        public string descricao { get; set; }
        public decimal preco { get; set; }
        public  string imagem { get; set; }
        public byte dados { get; set; }

    }

https://i.stack.Imgur.com/Gjl0s.png

  • and how is the image saved in the database? what is the type of the field? varbinary? need to convert byte data to image, possibly save a folder so it can have a link and display

  • @The fields of the image table relative to the database are varbinary.

  • I did the conversion but now the image appears "match"

No answers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.