Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

jalberromano1980

Erro ao inserir imagem no BD atraves de parametro

Recommended Posts

Salve salve pessoal!!!

 

Estou tentando inserir uma imagem no BD sql server e esta dando erro quando ela passa pelo metodo de insercao que eu criei... Ela chega com formato array de bytes mas quando eh convertida para string dah erro... acho que eh isso.. pois quando dou um breakpoint e vejo o que esta dentro do parametro tem isso: 'System.Byte[]'

 

O que eu posso fazer para corrigir isso sem alterar passagem por parametros?.. eh que todo o meu projeto esta estruturado assim.... ou outra forma de corrigir isso?

 

Obrigado.

o metrodo de inserecao eh esse:

 

 

public override void InserirRegistros(Modelagem.Questoes InserirRegistros)
        {
            try
            {
                StringBuilder insert = new StringBuilder();


                insert.AppendLine("INSERT INTO Questoes(nome_completo, cod_professor, data_cadastro, nome_area, cod_area, nome_curso, cod_curso, nome_disciplina, cod_disciplina, tipo_questao, cod_tipo_questao, tipo_nivel_dificuldade, cod_nivel_dificuldade, tipo_assunto, cod_assunto, texto_questao, imagem_questao)");
                insert.AppendLine(" VALUES ('" + InserirRegistros.NomeCompleto + "','" + InserirRegistros.CodigoProfessor + "', '" + InserirRegistros.DataCadastro + "', '" + InserirRegistros.NomeArea + "', '" + InserirRegistros.CodigoArea + "', '" + InserirRegistros.NomeCurso + "', '" + InserirRegistros.CodigoCurso + "', '" + InserirRegistros.NomeDisciplina + "', '" + InserirRegistros.CodigoDisciplina + "', '" + InserirRegistros.TipoQuestao + "', '" + InserirRegistros.CodigoTipoQuestao + "', '" + InserirRegistros.TipoNivelDificuldade + "', '" + InserirRegistros.CodigoNivelDificuldade + "', '" + InserirRegistros.TipoAssunto + "', '" + InserirRegistros.CodigoAssunto + "', '" + InserirRegistros.TextoQuestao + "', '" + InserirRegistros.ImagemQuestao + "')");

                conexao.AbrirConexao();
                conexao.ExecutarComandoExecuteNonQuery(insert.ToString());

                conexao.FecharConexao();
                MessageBox.Show("Registro inserido no banco de dados!", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information);

            }
            catch (Exception)
            {
                MessageBox.Show("Erro ao inserir registro no banco de dados!", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema ehq ue quando eu uso sqlparameter ele insere no banco: @nome, @Imagem... ai um amigo do forum me sugeriu assim, para que desse certo... e deu;;;; o problema é que para imagem, dá erro pq ele converte pra string....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não ele não insere @nome nem @imagem, ele vai substituir o valor de @nome pelo nome do parâmetro que você declarou e o @imagem pelo array de bytes. O problema que você tem é que ele está tentando converter tudo para string e não pode, veja se no banco de dados o tipo de dados da coluna é IMAGE ou BLOB (VARBINARY e etc.)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.