none
Associar imagem RRS feed

  • Pergunta

  • Prezados, boa tarde

    Eu tenho uma imagem gravada no meu banco de dados e já conseguir carregá-la através de uma consulta SQL.

    Eu preciso associá-la à um componente "imagebutton". Como fazer isso ? 

    Obrigado 

    quinta-feira, 13 de dezembro de 2012 19:00

Respostas

  • Faça assim:

    ImageButton1.ImageUrl="PageImageBD.ashx?email=" + cookiemail.Value.ToString();
    

    E crie a página PageImageBD.ashx com o seguinte código:

    <%@ webhandler language="C#" class="PageImageBDHandler" %>
    using System; 
    using System.Web; 
    using System.Data; 
    using System.Data.SqlClient; 
    public class PageImageBDHandler : IHttpHandler 
    { 
        public bool IsReusable { get { return true; } } 
        
        public void ProcessRequest(HttpContext ctx) 
        { 
            string email = ctx.Request.QueryString["email"]; 
    
    	FbConnection conexao = new FbConnection(stringconexao);
            conexao.Open();
            FbCommand readCommand = new FbCommand("select foto from usuarios where email = '" + email + "'", conexao);
    	byte[] image = (byte[])readCommand.ExecuteScalar(); 
            conexao.Close();
    			
    	ctx.Response.ContentType = "image/bmp"; 
            ctx.Response.OutputStream.Write(image, 78, image.Length - 78); 
        } 
    } 

    Segue a fonte de onde tirei a explicação: http://www.developerfusion.com/code/5223/using-ashx-files-to-retrieve-db-images/

    Tente usar dessa forma e reporta o resultado, abs



    "Caso esta resposta tenha ajudado a solucionar sua dúvida, favor clicar em [Marcar como Resposta] para beneficiar outros membros da comunidade que estejam lendo este thread"

    Luiz Carlos Pereira da Silva

    www.facebook.com/RenascerMandaqui | twitter: @LUIZofJESUS | skype: luiz.dev


    • Editado Luiz.DEV sexta-feira, 14 de dezembro de 2012 10:48
    • Marcado como Resposta Daniel Village sexta-feira, 14 de dezembro de 2012 11:50
    sexta-feira, 14 de dezembro de 2012 10:44

Todas as Respostas

  • O que vc tem no seu banco de dados é a imagem ou o caminho da imagem ?

    se for a caminho é só usar imagem.url = campo da tua tabela


    Junior

    quinta-feira, 13 de dezembro de 2012 19:09
  • Boa tarde Junior

    Eu tenho a imagem gravada no banco e já consegui recuperá-la. 

    Agora preciso associar a um imagebutton ....

    quinta-feira, 13 de dezembro de 2012 19:10
  • Ainda não é isso que eu preciso ... 
    quinta-feira, 13 de dezembro de 2012 20:01
  • Meu código é esse :

    FbConnection conexao = new FbConnection(stringconexao);
                conexao.Open();
                FbCommand readCommand = new FbCommand("select foto from usuarios where email = '" + cookiemail.Value.ToString() + "'", conexao);
                FbDataReader leitor = readCommand.ExecuteReader();
                while (leitor.Read())
                {
                    byte[] imagem = (byte[])((leitor[0]));
                }            
                leitor.Close();
                conexao.Close();

    Agora eu preciso pegar a imagem do banco de dados e colocar no imagebutton ... isso que não estou conseguindo...

    quinta-feira, 13 de dezembro de 2012 20:04
  • Faça assim:

    ImageButton1.ImageUrl="PageImageBD.ashx?email=" + cookiemail.Value.ToString();
    

    E crie a página PageImageBD.ashx com o seguinte código:

    <%@ webhandler language="C#" class="PageImageBDHandler" %>
    using System; 
    using System.Web; 
    using System.Data; 
    using System.Data.SqlClient; 
    public class PageImageBDHandler : IHttpHandler 
    { 
        public bool IsReusable { get { return true; } } 
        
        public void ProcessRequest(HttpContext ctx) 
        { 
            string email = ctx.Request.QueryString["email"]; 
    
    	FbConnection conexao = new FbConnection(stringconexao);
            conexao.Open();
            FbCommand readCommand = new FbCommand("select foto from usuarios where email = '" + email + "'", conexao);
    	byte[] image = (byte[])readCommand.ExecuteScalar(); 
            conexao.Close();
    			
    	ctx.Response.ContentType = "image/bmp"; 
            ctx.Response.OutputStream.Write(image, 78, image.Length - 78); 
        } 
    } 

    Segue a fonte de onde tirei a explicação: http://www.developerfusion.com/code/5223/using-ashx-files-to-retrieve-db-images/

    Tente usar dessa forma e reporta o resultado, abs



    "Caso esta resposta tenha ajudado a solucionar sua dúvida, favor clicar em [Marcar como Resposta] para beneficiar outros membros da comunidade que estejam lendo este thread"

    Luiz Carlos Pereira da Silva

    www.facebook.com/RenascerMandaqui | twitter: @LUIZofJESUS | skype: luiz.dev


    • Editado Luiz.DEV sexta-feira, 14 de dezembro de 2012 10:48
    • Marcado como Resposta Daniel Village sexta-feira, 14 de dezembro de 2012 11:50
    sexta-feira, 14 de dezembro de 2012 10:44
  • Bom dia Luiz,

    Deu certo ... a imagem pra ficar toda certa e não aparecer o texto "Enviar dados" em negrito é só alterar a linha:

    ctx.Response.OutputStream.Write(image, 78, image.Length - 78);

    por esta aqui

    ctx.Response.OutputStream.Write(image, 0, image.Length); 

    Muito obrigado...

    Abraço

    sexta-feira, 14 de dezembro de 2012 11:15