Ir para conteúdo

Arquivado

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

jalberromano1980

Inserir e recuperar uma imagem no SQL Server com C#

Recommended Posts

Pessoal, Ja li inumeros artigos da net orientando a como inserir uma imagem no sql server, mas nenhum funcionou com meu projeto.

 

Eu tentei inserir a imagem no formato bmp e deu certo inseri-la no banco, so nw consegui pega-la no banco pq tinha que converte-la.... qual [e a melhor opcao para salvar a imagem no bd: image, binario, ou outra?

 

Alguem poderia me ajudar desde o zero com codigos? eh para meu tcc qu esta parado por causa disso...

 

Um abraco a todos :)

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, quando você manda pra banco você geralmente converte para BLOB (Binary Large Object), isso significa que ela é um array de bytes. Se você tem, por exemplo, um pictureBox, basta você jogar todo o conteúdo do campo que você vai buscar através de um SELECT em uma variável do tipo Byte[] (ou Byte() se for VB.NET).

 

Depois é só dizer que a imagem é de um stream ou de um byte, aqui tem alguns exemplos:

 

http://stackoverflow.com/questions/5431215/converting-system-byte-to-the-image-and-display-in-the-picturebox-in-winform

http://stackoverflow.com/questions/9576868/how-to-put-image-in-a-picture-box-from-a-byte-in-c-sharp

http://stackoverflow.com/questions/16629983/how-to-display-in-a-picturebox-an-byte-array-image-from-a-sql-table

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado por ter respondido Klaos. Estou usando o C#. A figura foi gravada no BD sql server com sucesso. Só nw estou conseguindo recupera-la.... Estou te enviando o metodo no qual eu carrego do banco os dados e em seguida são carregas as propriedades da classe.... nw sei como converter esta linha( questoes.ImagemQuestao = leitor["imagem_questao"].ToString(); ) eu deixei converterndo para ToString(), mas ta dando erro. Como eu converto isso amigo?

 

abraço e muito obrigado pela ajuda :)

 

public override List<Modelagem.Questoes> ListarUmRegistro(int Codigo)
{
var ListarUmaQuestao = new List<Modelagem.Questoes>();
var ComandoSql = "SELECT cod_questao, 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 FROM Questoes WHERE cod_questao = @cod_questao";
ComandoSql = ComandoSql.Replace("@cod_questao", Codigo.ToString());
conexao.AbrirConexao();
var leitor = conexao.ExecutarComandoExecuteReader(ComandoSql);
while (leitor.Read())
{
var questoes = new Modelagem.Questoes();
questoes.CodigoQuestao = Convert.ToInt16(leitor["cod_questao"]);
questoes.NomeCompleto = leitor["nome_completo"].ToString();
questoes.CodigoProfessor = Convert.ToInt16(leitor["cod_professor"]);
questoes.DataCadastro = Convert.ToDateTime(leitor["data_cadastro"]);
questoes.NomeArea = leitor["nome_area"].ToString();
questoes.CodigoArea = Convert.ToInt16(leitor["cod_area"]);
questoes.NomeCurso = leitor["nome_curso"].ToString();
questoes.CodigoCurso = Convert.ToInt16(leitor["cod_curso"]);
questoes.NomeDisciplina = leitor["nome_disciplina"].ToString();
questoes.CodigoDisciplina = Convert.ToInt16(leitor["cod_disciplina"]);
questoes.TipoQuestao = leitor["tipo_questao"].ToString();
questoes.CodigoTipoQuestao = Convert.ToInt16(leitor["cod_tipo_questao"]);
questoes.TipoNivelDificuldade = leitor["tipo_nivel_dificuldade"].ToString();
questoes.CodigoNivelDificuldade = Convert.ToInt16(leitor["cod_nivel_dificuldade"]);
questoes.TipoAssunto = leitor["tipo_assunto"].ToString();
questoes.CodigoAssunto = Convert.ToInt16(leitor["cod_assunto"]);
questoes.TextoQuestao = leitor["texto_questao"].ToString();
questoes.ImagemQuestao = leitor["imagem_questao"].ToString(); ///Nw estou conseguindo converter nessa linha
ListarUmaQuestao.Add(questoes);
}
conexao.FecharConexao();
return ListarUmaQuestao.ToList();
}


Consegui implementar assim:

 

questoes.ImagemQuestao = Convert.ToByte[](leitor["imagem_questao"]);

 

será que é isso?

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.