none
Não existe mapeamento do tipo de objeto System.Windows.Forms.PictureBox RRS feed

  • 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.

    quarta-feira, 24 de janeiro de 2018 18:57

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
    quarta-feira, 24 de janeiro de 2018 19:11
  • 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

    Olá Leandro de Agostini

    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
    quarta-feira, 24 de janeiro de 2018 22:57
  • Olá alexborland2 tudo bem?!

    Siga as instruções nessa thread aqui:

    https://social.msdn.microsoft.com/Forums/pt-BR/b4d72def-d449-448d-9390-c57a6c9972ba/salvar-imagem-pciture-box-em-sql-server-c?forum=vscsharppt

    Abraços!


    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
    quarta-feira, 24 de janeiro de 2018 23:03

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
    quarta-feira, 24 de janeiro de 2018 19:11
  • 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

    Olá Leandro de Agostini

    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
    quarta-feira, 24 de janeiro de 2018 22:57
  • Olá alexborland2 tudo bem?!

    Siga as instruções nessa thread aqui:

    https://social.msdn.microsoft.com/Forums/pt-BR/b4d72def-d449-448d-9390-c57a6c9972ba/salvar-imagem-pciture-box-em-sql-server-c?forum=vscsharppt

    Abraços!


    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
    quarta-feira, 24 de janeiro de 2018 23:03
  • 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();

    quinta-feira, 25 de janeiro de 2018 13:43