SALVAR IMAGEM NO SQL SERVER COM VISUAL STUDIO

23/12/2015

0

Olá, estou tentando salvar no banco de dados sql server a logomarca dos clientes que cadastro, estou utilizando o visual studio 2015.
Está retornando o seguinte erro {"Não existe mapeamento do tipo de objeto System.Drawing.Bitmap para um provedor gerenciado de tipo nativo."}. o código que estou usando é o seguinte:

public void Salvar(string nome, string telefone, string celular, string email, string contato, DateTime datacadastro, bool ativo, Image imagem)
        {
      

            try
            {   //Salva as informações dos clientes no banco na tabela cliente
                using (SqlConnection conexao = new SqlConnection(Conexao.stringConexao))
                {
                    conexao.Open();
                    sql.Clear();
                    comandoSql.Parameters.Clear();
                    sql.Append("INSERT INTO Cliente (Nome, Email, TelefoneFixo, Celular, ");
                    sql.Append(" Ativo, Contato, DataCadastro, Imagem)");
                    sql.Append(" VALUES (@nome, @email, @telefone, @celular,");
                    sql.Append(" @ativo, @contato, @dataCadastro, @logo)");

                    comandoSql.Parameters.Add(new SqlParameter("@nome", nome));
                    comandoSql.Parameters.Add(new SqlParameter("@email", email));
                    comandoSql.Parameters.Add(new SqlParameter("@telefone", telefone));
                    comandoSql.Parameters.Add(new SqlParameter("@celular", celular));
                    comandoSql.Parameters.Add(new SqlParameter("@ativo", ativo));
                    comandoSql.Parameters.Add(new SqlParameter("@contato", contato));
                    comandoSql.Parameters.Add(new SqlParameter("@datacadastro", datacadastro));
                    comandoSql.Parameters.Add(new SqlParameter("@logo", imagem));

                    comandoSql.CommandText = sql.ToString();
                    comandoSql.Connection = conexao;
                    comandoSql.ExecuteNonQuery();
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }


como poderia resolver este problema?
Fagner

Fagner

Responder

Posts

23/12/2015

Fabiano Carvalho

Sugiro a você, não salvar a imagem no banco e sim em alguma pasta do servidor, salvando a imagem no banco pode comprometer o desempenho.

De qualquer forma, qual a estrutura da sua tabela?
Responder

23/12/2015

Fagner

está é a estrutura da minha tabela
CREATE TABLE [dbo].[Cliente](
	[CodCliente] [int] IDENTITY(1,1) NOT NULL,
	[Nome] [varchar](50) NOT NULL,
	[Contato] [varchar](50) NULL,
	[TelefoneFixo] [char](10) NULL,
	[Celular] [char](11) NULL,
	[Email] [varchar](120) NULL,
	[DataCadastro] [date] NOT NULL,
	[Ativo] [bit] NULL,
	[Imagem] [image] NULL,
 CONSTRAINT [PK__Cliente__DF8324D73ACCE33F] PRIMARY KEY CLUSTERED 


Pro motivos de segurança previso salvar no banco.
até agora pelo que pesquisei parece que consigo salvar com o código

            byte[] logo;

            if (imagem != null)
            {
                var stream = new System.IO.MemoryStream();

                imagem.Save(stream, System.Drawing.Imaging.ImageFormat.Png);
                stream.Seek(0, System.IO.SeekOrigin.Begin);
                logo = new byte[stream.Length];
                stream.Read(logo, 0, System.Convert.ToInt32(stream.Length));
            }
            else
            {
                logo = null;
            }


mas tenho que identificar como fazer o processo reverso para buscar no banco.
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar