Problemas Com Fotos C#

14/04/2011

0

Bom dia! Estou tentando colocar uma foto que tenho guardada em tabela Curriculo campo: Foto Image(SQL SERVER 2005)  em um componente Image no WEB FORM e nao estou conseguindo. Alguem poderia me ajudar?  
Frederico Albuquerque

Frederico Albuquerque

Responder

Posts

14/04/2011

Paulo Freire

Vamos lá Frederico, apanhei muito com isso:
minha tabela esta assim:
ID INT AUNTOINCREMENT(1)NOME VARCHAR(50)FOTO VARBINARY(MAX)TIPO_FOTO VARCHAR(20)

Uso Binary por poder cocloar qualquer coisa lá, JPEG, GIF, PNG, PDF, BMP, SWF
Beleza,  coloque um TextoBox para o nome e um FileUpload para carregar a foto, ok
Eu gosto de usar Store Procedure, mas fica a seu gosto
Um botão incluir:
public void IncluirComFoto()        {                //Trabsnf. foto em Bites                byte[] img = FileUploadFoto.FileBytes;                string tipo = FileUploadFoto.PostedFile.ContentType;
                SqlCommand cmd = new SqlCommand("InserirComFoto", new SqlConnection(ConfigurationManager.ConnectionStrings["Conexao"].ConnectionString));                cmd.Connection.Open();                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.Add(new SqlParameter("@NOME", txtNome.Text));                cmd.Parameters.Add(new SqlParameter("@FOTO", img));                cmd.Parameters.Add(new SqlParameter("@TIPO_FOTO", tipo));    
try                {                    cmd.ExecuteNonQuery();
                    //Mensagem                    lblMensagem.Text = "Membro gravado com Sucesso !!!";
                 }                catch (SqlException ex)                {                    Response.Write(ex.ToString());                }                finally                {                    cmd.Connection.Close();                    cmd.Connection.Dispose();                    //btIncluir.Enabled = true;                }            }

Pronto, para visualizar, crie um novo Item "Generic Handler", com o nome tipo MostrarFoto.ashx 

e deixe assim:
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Configuration;using System.Data.SqlClient;

namespace ShalomWeb{    ///     /// Summary description for Handler    ///     public class Handler : IHttpHandler    {
        public void ProcessRequest(HttpContext context)        {

            string conStr = ConfigurationManager.ConnectionStrings["Conexao"].ConnectionString;
            string ID = context.Request.QueryString["ID"];
            if (!string.IsNullOrEmpty(ID))            {                using (SqlConnection con = new SqlConnection(conStr))                {                    using (SqlCommand cmd = new SqlCommand("SELECT FOTO, TIPO_FOTO FROM ALUNOS WHERE ID=@ID", con))                    {                        cmd.Parameters.AddWithValue("@ID", Convert.ToInt32(ID));
                        SqlDataReader dr;
                        con.Open();
                        dr = cmd.ExecuteReader();
                        if (dr.Read())                        {                            byte[] imgByte = (byte[])dr["FOTO"];                            context.Response.ContentType = dr["TIPO_FOTO"].ToString();                            context.Response.BinaryWrite(imgByte);                        }                    }                }            }


        }
        public bool IsReusable        {            get            {                return false;            }        }    }}

Prontinho, basta digitar isso no seu browse  MostrarFoto.aspx?ID=1
Onde ID é o ID que gravou, ok
Qualquer coisa posta ai.

Responder

05/05/2011

Jones Roberto

Bom dia! Estou tentando colocar uma foto que tenho guardada em tabela Curriculo campo: Foto Image(SQL SERVER 2005)  em um componente Image no WEB FORM e nao estou conseguindo. Alguem poderia me ajudar?  
  Cara , como você pretende fazer???   que carregar apenas a foto ou quer listar todos os campos   se for somente a foto user DataReader ...   se for para Listar todos os Campos use um Repeater...   Dependendo do que você for usar disponibilize o codigo de sua tabela que eu criou um exemplo para você...   Abraço
Responder

05/05/2011

Frederico Albuquerque

Boa tarde! Minha tabela onte tenho a foto é: SQL 2005 Nome tabela: TFoto Campos:  Docto int                 Foto   System.Byte[]                 Nome   tenho que ler a tabela TFoto atraves do campo Docto e colocar em um componente Image em WebForm o campo Foto.   que fica mais ou menos assim     WEBFORM   <- Imagem que tenho que pegar na tabela: Foto   Docto:   9999999 Nome: TEste do Teste da silva            
Responder

09/05/2011

Jones Roberto

Ficou fácil agora
sua página asp.net deverá conter 1 datalist
exemplo
<asp:DataList ID="Catalogo" runat="server" RepeatColumns="1" RepeatDirection="Horizontal">                    <ItemTemplate>                        <div>                            <div>                                <label>                                    Docto</label>                                <asp:Label ID="lbl_cod" runat="server" Text='<%# Eval("Docto")%>'></asp:Label>                            </div>                            <div>                                <a href='#' >                                    <img src='<%# Eval("Foto")%>' alt="" />                                </a>                            </div>                            <div>                        <label>Nome</label>                                <asp:Label ID="lbl_nome" runat="server" Text='<%# Eval("Nome")%>'></asp:Label>                            </div>                            </div>                    </ItemTemplate>                </asp:DataList>

o correto seria vc apenas armazenar o endereço da sua imagem e não armazenar o conteudo total dela no banco ai a linha IMG ficaria assim
                                    <img src='<%# Eval("Foto", "Fotos/galeria/") %>' alt="" />
sendo que Fotos/galeria/ seria o caminho de sua imagem no servidor onde se encontrar o sistema

e agora vamos ao code behind onde contém o codigo C#
Criei um metódo de exemplo para você

        public void exibeFotos()        {
            SqlConnection conn = // sua conexão com o banco SQL 
            string comando = "SELECT * FROM TFoto where Docto=1";
            SqlDataAdapter da = new MySqlDataAdapter(comando, conn);            DataSet ds = new DataSet();
            da.Fill(ds);
           //Catalogo é o nome do Datalist           //asp:DataList ID="Catalogo"             Catalogo.DataSource =  ds.Tables[0].DefaultView;            Catalogo.DataBind();
        }
Espero que ajude...
Abraço


  

Responder

09/05/2011

Frederico Albuquerque

resolvido.....Muito obrigado mesmo. 
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar