Array
(
)

carregar foto em um diretorio no BD sql e exibir na pagina mediante uma consulta.

Clezer Aragon.
   - 14 set 2011

Ola Pessoal estou com uma duvida ,estou querendo fazer uma consulta em asp.net c# ao BD sql e ele me trazer toda a informação do produto até aqui tudo bem consegui fazer mas na hora de exibir a foto não qual objeto usar no VB para exibir a foto e lembrando que queria também que o banco guarda-se apenas o caminho do diretorio ,sendo feita a consulta em um textbox entrando com o codigo do produto apareça  as informações do produto e sua foto na pagina.   Alguem pode me ajudar como ficaria isso no BD sql e no meu código C# na minha pagina asp.net

Paulo Freire
|
MVP
    14 set 2011

Olá Clezer, vc primeiro precisa decidir onde ira gravar a foto do seu produto, no Banco de Dados no caso SQLServer 2005(superior) no campo VARBINARY(MAX) ou algum campo tipo URL_FOTO VARCHAR(254).
Os dois tem pós e contras, eu uso os dois porem em cenários diferentes, por exemplo as imagens de armamento, munição não posso deixar em direitorio na internet por preciso de uma segurnaça nas imagens então gravo dentro do banco, pensei que iria inchar o banco, mas não tenhos mais de 67000 registro e o banco esta com 490 mb.
Vou mostra como exibir a imagem em um componente Image ok, precisar do outro jeito é só da um grito.

protected void CarregaDadosDoOficial()        {            lblMensagem.Text = "";
            string strSQL = "SELECT ID, STATUS, NOME, ENDERECO, PATENTE, TRATAMENTO, URL_FOTO FROM OFICIAIS WHERE (ID=@ID)";
            SqlCommand cmd = new SqlCommand(strSQL, new SqlConnection(ConfigurationManager.ConnectionStrings["Conexao_CMSO"].ConnectionString));            cmd.Connection.Open();            cmd.CommandType = CommandType.StoredProcedure;            cmd.Parameters.Add(new SqlParameter("@ID", Session["IDOficial"]));  // Pode mudar para um TextBox
            SqlDataReader dr;
            try            {
                dr = cmd.ExecuteReader();
                if (dr.HasRows)                {                    while (dr.Read())                    {                        txtID.Text = dr["ID"].ToString();                        if (dr["STATUS"] != null) { ckStatus.Checked = (bool)dr["STATUS"]; }                                                txtNome.Text = dr["NOME"].ToString();                                                txtEndereco.Text = dr["ENDERECO"].ToString();                                                dpTratamento.SelectedValue = dr["ID_TRATAMENTO"].ToString();                        dpPatente.SelectedValue = dr["ID_PATENTE"].ToString();                        
                        //Carrega Foto                        if (dr["URL_FOTO"] != null) { Foto.ImageUrl = "~/upload/" + dr["URL_FOTO"].ToString(); }   //Aqui carrego a imagem para o component IMAGE
                    }
                    btIncluir.Enabled = false;
                }                else                {                    btIncluir.Enabled = true;                }
                dr.Dispose();
            }            catch (SqlException ex)            {                Response.Write(ex.ToString());            }            finally            {                cmd.Connection.Close();                cmd.Connection.Dispose();                btIncluir.Enabled = true;            }        }

Ops lembrando só sei em C#, VB não sei nada ok.

 

Clezer Aragon.
   - 27 set 2011

Queria saber como fasso para fazer para buscar apenas o código do produto no banco e ele comparar o código com o diretório da foto com o mesmo código e exibir no grid ,lembrando que as fotos estão em um diretório fora do banco