none
Salvar Image1. asp.Net No banco de dados RRS feed

  • Pergunta

  • Olá bom dia !

    Estou com uma duvida. Estou tentando pegar uma imagem do componente Image1 e converter para byte para salvar no banco de dados. Consegui utilizando através do fileupload, mas a minha intenção é deixar uma imagem pre-carregada para que o usuario não tenha a necessidade de carregar imagem.

    Estou tentando desta forma... sendo que o campo foto fica em branco, parece não estar passando nada !

    segue o codigo do botão:  

    Membro_Ado ado = new Membro_Ado();

    Membro_To = new Membro_To();

              byte[] imagebyt = new byte[Image1.ImageUrl.Length + 1];
              MemoryStream ms = new MemoryStream(imagebyt, 0, imagebyt.Length);

                to.Nome = txtNome.Text;
                to.Idade = calc;
                to.Dtnascimento = txtNascimento.Text;
                ado.Inserir_Membro(to, imagebyt);

    Tenho uma classe com um metodo para salvar no banco.

     public string Inserir_Membro(Membro_TO p, byte[] vetorImagens)
             { 
                 // já inicializada no construtor
                 SqlConnection conn = new SqlConnection(strconn);
                 // obtém o ID que precisava
                 conn.Open();
                 SqlTransaction transacao = conn.BeginTransaction();
                 StringBuilder sb = new StringBuilder();
                 String sqlProduto = "INSERT INTO Membros ([Nome],[dtnascimento],[idade],[Foto]) VALUES        (@Nome,@dtnascimento,@idade,@Foto)";
                 SqlCommand cmdProduto = new SqlCommand(sqlProduto, conn, transacao);
                 cmdProduto.Parameters.AddWithValue("@Nome", p.Nome);
                 cmdProduto.Parameters.AddWithValue("@dtnascimento", p.Dtnascimento);
                 cmdProduto.Parameters.AddWithValue("@idade", p.Idade);
                 cmdProduto.Parameters.AddWithValue("@Foto",vetorImagens);
                 cmdProduto.ExecuteNonQuery();
                 transacao.Commit();
                 return "";
             }

    Obrigado.

    Anderson


    Jimi Anderson


    • Editado Anderson Mac sábado, 31 de maio de 2014 23:17 Erro de Digitação
    sábado, 31 de maio de 2014 15:03

Respostas

  • Olá Jimi, veja nesse bloco de codigo como ler a imagem de seu controle Image e passar para um array de bytes :

    var image = HttpContext.Current.Server.MapPath(Image1.ImageUrl);
                
                //proto sua imagem vai estar em um array de bytes
                byte[] bytes = File.ReadAllBytes(image);

    • Marcado como Resposta Anderson Mac segunda-feira, 2 de junho de 2014 02:28
    domingo, 1 de junho de 2014 16:35

Todas as Respostas

  •  Olá Jimi,

       a variavel "imageBytes" seria a mesma que imagebyt ? Caso não for o erro é esse, pois o resto aparentemente devia funcionar !

    sábado, 31 de maio de 2014 20:18
  • Olá Daniel,

    Eu realmente digitei errado... mas a variavel é imagebyt. Obrigado pela observação, mas ainda assim não funciona.

    Obrigado pela atenção.


    Jimi Anderson

    sábado, 31 de maio de 2014 23:19
  • Olá Jimi, veja nesse bloco de codigo como ler a imagem de seu controle Image e passar para um array de bytes :

    var image = HttpContext.Current.Server.MapPath(Image1.ImageUrl);
                
                //proto sua imagem vai estar em um array de bytes
                byte[] bytes = File.ReadAllBytes(image);

    • Marcado como Resposta Anderson Mac segunda-feira, 2 de junho de 2014 02:28
    domingo, 1 de junho de 2014 16:35
  • Obrigado meu amigo !!!

    Agora foi certinho, vlw mesmo...

    Grande abraço !


    Jimi Anderson

    segunda-feira, 2 de junho de 2014 02:28