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