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!


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!