Usuário com melhor resposta
Não existe mapeamento do tipo de objeto System.Windows.Forms.PictureBox

Pergunta
-
Boa tarde.
Estou inciando um aplicação de cadastro de fotos em MSQL 2012 pelo VS 2012,
Porem ao incluir no banco apresenta este erro:
"Não existe mapeamento do tipo de objeto System.Windows.Forms.PictureBox."vejam o codigo de criação:
SqlConnection conectar = new SqlConnection();
conectar.ConnectionString = "Data Source=NOTE008;Initial Catalog=SOLUTION;Integrated Security=True";
conectar.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conectar;
cmd.CommandText = "insert into visitante(nomeVisitante,numeroRg,numeroCPF,observacao,imagem) Values (@nome, @rg, @cpf, @observacao, @imagem)";
cmd.Parameters.AddWithValue("@nome", txt_nome.Text);
cmd.Parameters.AddWithValue("@rg", txt_rg.Text);
cmd.Parameters.AddWithValue("@cpf", txt_cpf.Text);
cmd.Parameters.AddWithValue("@observacao", txt_obs.Text);
//cmd.Parameters.AddWithValue("@inclusao", DateTime.Now.ToString());
cmd.Parameters.AddWithValue("@imagem", foto).Value = foto;
int resultado = cmd.ExecuteNonQuery();Se alguem puder me ajudar.
Respostas
-
Boa tarde Alex, o seu código precisar arrumar algumas coisas:
1. o parâmetro @inclusão precisa ser declarado na sintaxe do insert;
2.o parâmetro @imagem precisa estar na sequência dos valores do insert (ou seja, coloque-o logo após o parâmetro @observação);
3. utilize apenas isso para inserir a sua imagem cmd.Parameters.AddWithValue("@imagem", foto);
lembre-se que o objeto foto, deve estar preenchido com o mesmo data type da coluna no banco, ou seja, caso a coluna no banco esteja tipada como varchar o valor do objeto foto deve ser do tipo string........agora verifique se o objeto foto esta vindo preenchido corretamente, pois em alguns casos acabamos preenchendo o objeto com valor errado.
Se tiver alguma dúvida pergunte.
Abs!
Leandro de Agostini MCTS - Web Application, Framework 4
- Marcado como Resposta alexborland2 quinta-feira, 25 de janeiro de 2018 11:20
-
Boa tarde Alex, o seu código precisar arrumar algumas coisas:
1. o parâmetro @inclusão precisa ser declarado na sintaxe do insert;
2.o parâmetro @imagem precisa estar na sequência dos valores do insert (ou seja, coloque-o logo após o parâmetro @observação);
3. utilize apenas isso para inserir a sua imagem cmd.Parameters.AddWithValue("@imagem", foto);
lembre-se que o objeto foto, deve estar preenchido com o mesmo data type da coluna no banco, ou seja, caso a coluna no banco esteja tipada como varchar o valor do objeto foto deve ser do tipo string........agora verifique se o objeto foto esta vindo preenchido corretamente, pois em alguns casos acabamos preenchendo o objeto com valor errado.
Se tiver alguma dúvida pergunte.
Abs!
Leandro de Agostini MCTS - Web Application, Framework 4
Tudo bem?!
O @inclusão está comentado, não a necessidade dele na query.
Isso também é válido quando se trabalha com bytes por exemplo:
cmd.Parameters.AddWithValue("@imagem", foto).Value = foto;
Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!
Rafael Almeida
Microsoft Developer .NET
Microsoft Certified Professional
Development Leader at JAMSOFT Informática
Email: ralms@ralms.net
Blog - GitHub - LinkedIn - Twitter- Marcado como Resposta alexborland2 quinta-feira, 25 de janeiro de 2018 11:20
-
Olá alexborland2 tudo bem?!
Siga as instruções nessa thread aqui:
Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!
Rafael Almeida
Microsoft Developer .NET
Microsoft Certified Professional
Development Leader at JAMSOFT Informática
Email: ralms@ralms.net
Blog - GitHub - LinkedIn - Twitter- Marcado como Resposta alexborland2 quinta-feira, 25 de janeiro de 2018 11:19
Todas as Respostas
-
Boa tarde Alex, o seu código precisar arrumar algumas coisas:
1. o parâmetro @inclusão precisa ser declarado na sintaxe do insert;
2.o parâmetro @imagem precisa estar na sequência dos valores do insert (ou seja, coloque-o logo após o parâmetro @observação);
3. utilize apenas isso para inserir a sua imagem cmd.Parameters.AddWithValue("@imagem", foto);
lembre-se que o objeto foto, deve estar preenchido com o mesmo data type da coluna no banco, ou seja, caso a coluna no banco esteja tipada como varchar o valor do objeto foto deve ser do tipo string........agora verifique se o objeto foto esta vindo preenchido corretamente, pois em alguns casos acabamos preenchendo o objeto com valor errado.
Se tiver alguma dúvida pergunte.
Abs!
Leandro de Agostini MCTS - Web Application, Framework 4
- Marcado como Resposta alexborland2 quinta-feira, 25 de janeiro de 2018 11:20
-
Boa tarde Alex, o seu código precisar arrumar algumas coisas:
1. o parâmetro @inclusão precisa ser declarado na sintaxe do insert;
2.o parâmetro @imagem precisa estar na sequência dos valores do insert (ou seja, coloque-o logo após o parâmetro @observação);
3. utilize apenas isso para inserir a sua imagem cmd.Parameters.AddWithValue("@imagem", foto);
lembre-se que o objeto foto, deve estar preenchido com o mesmo data type da coluna no banco, ou seja, caso a coluna no banco esteja tipada como varchar o valor do objeto foto deve ser do tipo string........agora verifique se o objeto foto esta vindo preenchido corretamente, pois em alguns casos acabamos preenchendo o objeto com valor errado.
Se tiver alguma dúvida pergunte.
Abs!
Leandro de Agostini MCTS - Web Application, Framework 4
Tudo bem?!
O @inclusão está comentado, não a necessidade dele na query.
Isso também é válido quando se trabalha com bytes por exemplo:
cmd.Parameters.AddWithValue("@imagem", foto).Value = foto;
Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!
Rafael Almeida
Microsoft Developer .NET
Microsoft Certified Professional
Development Leader at JAMSOFT Informática
Email: ralms@ralms.net
Blog - GitHub - LinkedIn - Twitter- Marcado como Resposta alexborland2 quinta-feira, 25 de janeiro de 2018 11:20
-
Olá alexborland2 tudo bem?!
Siga as instruções nessa thread aqui:
Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!
Rafael Almeida
Microsoft Developer .NET
Microsoft Certified Professional
Development Leader at JAMSOFT Informática
Email: ralms@ralms.net
Blog - GitHub - LinkedIn - Twitter- Marcado como Resposta alexborland2 quinta-feira, 25 de janeiro de 2018 11:19
-
Bom dia eu fiz umas correçoes conforme vi nas instruçoes, porem retorna erro:
Falha ao converter valor de parâmetro de PictureBox em Byte[].
segue trecho do código:
string nomeArquivo = openFileDialog1.FileName;
Bitmap bmp = new Bitmap(nomeArquivo);
foto_cliente.Image = bmp;
MemoryStream ms = new MemoryStream();
bmp.Save(ms, ImageFormat.Bmp);
byte[] foto = ms.ToArray();
SqlConnection conectar = new SqlConnection();
conectar.ConnectionString = "Data Source=NOTE008;Initial Catalog=SOLUTION;Integrated Security=True";
conectar.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conectar;
cmd.CommandText = "insert into visitante(nomeVisitante,numeroRg,numeroCPF,observacao,foto) Values (@nome, @rg, @cpf, @observacao, @foto)";
cmd.Parameters.AddWithValue("@nome", txt_nome.Text);
cmd.Parameters.AddWithValue("@rg", txt_rg.Text);
cmd.Parameters.AddWithValue("@cpf", txt_cpf.Text);
cmd.Parameters.AddWithValue("@observacao", txt_obs.Text);
//cmd.Parameters.AddWithValue("@inclusao", DateTime.Now.ToString());
/* cmd.Parameters.AddWithValue("@foto", foto_cliente).Value = foto_cliente;*/
SqlParameter paramFoto = new SqlParameter("@foto", SqlDbType.Binary);
paramFoto.Value = foto_cliente;
cmd.Parameters.Add(paramFoto);
int resultado = cmd.ExecuteNonQuery();