Array
(
)

update imagem no banco de dados!

Hnkarla
   - 26 mar 2008

Olá!
To tentando atualizar uma img no banco de dados do tipo varbinary, eu já consegui inserir e mostrar ela, mas agora n consigo atualizar ele!

To fazendo da seguinte maneira

#Código

 protected void atualizarButton_Click(object sender, EventArgs e)
    {
        try
        {
            cnnSql.Open();
            cmmSql.Connection = cnnSql;
            
                if (FileUpload.HasFile)
                {
                    using (BinaryReader reader = new BinaryReader(FileUpload.PostedFile.InputStream))
                    {
                        byte[] image = reader.ReadBytes(FileUpload.PostedFile.ContentLength);
                        salva(image);
                    }
                }  

                else
                {
                    sql = "update Pesquisa set modelo =´" + modeloDropDownList.Text + "´" + ",marca = ´"
                        + marcaDropDownList.Text + "´" + ",cor = ´" + corDropDownList.Text + "´"
                        + ",tipo =´" + tipoDropDownList.Text + "´" + ",ano =´" + anoTextBox.Text + "´" + ",valor=" +
                        valorTextBox.Text + ",descricao =´" + descricaoTextBox.Text + "´" + "where itemid=" + index;
                    this.cmmSql.CommandText = sql;
                    this.cmmSql.ExecuteNonQuery();
                }
    }
             
              

            catch (Exception erro)
            {
                Response.Write(erro);
            }

            finally
            {
                carregaBd();
                desaparecePanel();    
                cnnSql.Close();
            }
        }
    


Esse método ai qd eh clicado no botao atualizar, atualiza todos os dados da linha selecionada do banco, com ou sem img nova.

Agora se tiver img, o método q é chamado :

#Código

  protected void salva(byte[] image) {
        int rowsAffected;
          

        using (SqlConnection connection = new SqlConnection(strSql))
        {
            using (SqlCommand cmmSql = connection.CreateCommand())
            {
                cmmSql.Parameters.AddWithValue("@Image", image);
                cmmSql.Parameters.AddWithValue("@marca", marcaDropDownList.SelectedItem.Text);
                cmmSql.Parameters.AddWithValue("@modelo", modeloDropDownList.SelectedItem.Text);
                cmmSql.Parameters.AddWithValue("@cor", corDropDownList.SelectedItem.Text);
                cmmSql.Parameters.AddWithValue("@tipo", tipoDropDownList.SelectedItem.Text);
                cmmSql.Parameters.AddWithValue("@ano", anoTextBox.Text);
                cmmSql.Parameters.AddWithValue("@valor", valorTextBox.Text);
                cmmSql.Parameters.AddWithValue("@descricao", descricaoTextBox.Text);
            }

            sql = "update Pesquisa set modelo =´" + @modelo + "´" + ",marca = ´"
                         + @marca + "´" + ",cor = ´" + @cor + "´"
                         + ",tipo =´" + @tipo + "´" + ",ano =´" + @ano + "´" + ",valor=" +
                         @valor + ",descricao =´" + @descricao + "´" + ", image =´" + @image + "´ where itemid=" + index;

            cmmSql.CommandText = sql;
            //connection.Open();
            cmmSql.ExecuteNonQuery();
        }
          
        
}


Se coloco no sql ´....image=´+@image+´...´ dá excpetion, e se coloco com aspas simples ´....image=´´+@image+´´...´ passa, o binary data continua no banco, mas n mostra nmais img nenhuma!

Espero q alguem possa me ajudar![/tagcod]

Groove
   - 04 abr 2008

olha pode ser besteira (acho q é) mas
como ainda niguem respondeu...

naum poderia ser assim, tipo...

na hora de atualizar vc deletava a img antiga e inseria a nova???

é só uma sugestão mas...

valew galera!!!

Hnkarla
   - 04 abr 2008

Jah consegui passando por parametro! =]

Obrigada!