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

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar