SALVAR IMAGEM NO SQL SERVER COM VISUAL STUDIO
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:
como poderia resolver este problema?
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
Curtidas 0
Respostas
Fabiano Carvalho
23/12/2015
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?
De qualquer forma, qual a estrutura da sua tabela?
GOSTEI 0
Fagner
23/12/2015
está é a estrutura da minha tabela
Pro motivos de segurança previso salvar no banco.
até agora pelo que pesquisei parece que consigo salvar com o código
mas tenho que identificar como fazer o processo reverso para buscar no banco.
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.
GOSTEI 0