none
como inserir um banco de fotos no visual studio 2010

    Pergunta

  • galera sou leigo no assunto, estou criando um banco de dados com o access para cadastrar os membros de minha igreja, já fiz tudo...só não consigo inserir a bendita picturebox para escolher as benditas fotos...alguém sabe me ensinar no modo design por favor. 

    só encontro tutoriais no modo de códigos.

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;

    namespace CBVC_Membros___CCF_Church
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }

            private void mestre2BindingNavigatorSaveItem_Click(object sender, EventArgs e)
            {
                this.Validate();
                this.mestre2BindingSource.EndEdit();
                this.tableAdapterManager.UpdateAll(this.cadastro_CCF_ChurchDataSet);

            }

            private void mestre2BindingNavigatorSaveItem_Click_1(object sender, EventArgs e)
            {
                this.Validate();
                this.mestre2BindingSource.EndEdit();
                this.tableAdapterManager.UpdateAll(this.cadastro_CCF_ChurchDataSet);

            }

            private void Form1_Load(object sender, EventArgs e)
            {
                // TODO: This line of code loads data into the 'cadastro_CCF_ChurchDataSet.mestre2' table. You can move, or remove it, as needed.
                this.mestre2TableAdapter.Fill(this.cadastro_CCF_ChurchDataSet.mestre2);

            }

            private void maskedTextBox3_MaskInputRejected(object sender, MaskInputRejectedEventArgs e)
            {

            }

            private void pictureBox3_Click(object sender, EventArgs e)
            {
                
            }

            
        }
    }

     sou grato por um help!!!

    quinta-feira, 24 de janeiro de 2013 02:15

Respostas

  • Siga a seguinte linha de raciocinio,

    Para selecionar a foto e inserir no banco,voce usa o seguinte codigo:

    //Imports
    
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using System.IO;
    using System.Data.SqlClient;
    
    
             string _string  = "Server=" + Environment.MachineName + "\\SQLEXPRESS;Database=D5;Trusted_Connection=True;";
             SqlConnection _bd = new SqlConnection();
             
    
            private void cmdEscolhe_Click(object sender, EventArgs e)
            {
                try
                {
                    _bd.ConnectionString = _string;
    
                    //Seleciona o arquivo que o usuario escolheu
                    ofd.ShowDialog();
                    //carrrega o stream com o arquivo baixado do open file dialog
                    Stream _stream = ofd.OpenFile();
                    //recebe o binario do arquivo carregado do stream
                    BinaryReader _bin = new BinaryReader(_stream);
                    //declara o array de bytes
                    Byte[] _byte;
                    //Convert explicitamente o tamanho do stream em valor inteiro
                    int _lenStream = Convert.ToInt32(_stream.Length);
                    //o Array de bytes recebe os dados do proprio stream do arquivo
                    _byte = _bin.ReadBytes(_lenStream);
                    //somente mostra a imagem
                    piclocal.ImageLocation = ofd.FileName;
                    try
                    {
                        //Abre conexao com o banco
                        _bd.Open();
                        //Cria uma query 
                        SqlCommand cmdSql = new SqlCommand("INSERT INTO IMAGEM(IMAGEM_BIN) VALUES(@IMAGEM_BIN)", _bd);
                        //parametriza as informaçoea para inserção no banco com os devidos tipos de dados
                        SqlParameter _binBanco = new SqlParameter("@IMAGEM_BIN", SqlDbType.Image);
                        //Adiciona os parametros
                        cmdSql.Parameters.Add(_binBanco);
                        //dentro do collections parametros,seta o valor no array
                        cmdSql.Parameters[0].Value = _byte;
                        //executa a query
                        cmdSql.ExecuteNonQuery();
                    }
                    finally
                    {
                        //fecha a conexao
                        _bd.Close();
                    }
                }
                finally
                {
    
                }
            }
    
           

    Resgatando a foto no banco:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using System.IO;
    using System.Data.SqlClient;
    
    
            private void cmdResgata_Click(object sender, EventArgs e)
            {
                _bd.ConnectionString = _string;
                _bd.Open();
                //cria o select
                using (SqlCommand comando = new SqlCommand("SELECT * FROM IMAGEM WHERE CODIGO = 10", _bd))
                {
                    //faz a busca
                    SqlDataReader dr = comando.ExecuteReader();
                    try
                    {
                        //le os dados encontrados
                        dr.Read();
                        //tem linha?
                        if ((dr.HasRows))
                        {
                            //byte recebe os bytes do datareader passando os parametros para a funcao 'GetBytes'
                            byte[] _Bin = new byte[dr.GetBytes(1, 0, null, 0, int.MaxValue);
                            dr.GetBytes(1, 0, _Bin, 0, _Bin.Length);
                            MemoryStream _memoria = new MemoryStream(_Bin);
                            //Exibe a imagem resgatada dentro do picture box
                            picbanco.Image = Image.FromStream(_memoria);
                        }
                    }
                    finally
                    {
                        _bd.Close();
                    }
    
                }
            }
        }
    }

    No banco de dados existe uma tabela com o campo IMAGE.

    Microsoft Technology Associate (MTA)

    quarta-feira, 30 de janeiro de 2013 11:19
  • Se você quer escolher as fotos, use um OpenFileDialog.

    Entenda como funciona nesses links:

    DevMedia

    Macoratti


    Espero ter ajudado, abraços!


    Thiago Coelho - Líder das Comunidades .NET Coders e Windows 8 Brasil
    thiagocoelho.net | @thiagokoelho

    quinta-feira, 24 de janeiro de 2013 16:00

Todas as Respostas

  • Se você quer escolher as fotos, use um OpenFileDialog.

    Entenda como funciona nesses links:

    DevMedia

    Macoratti


    Espero ter ajudado, abraços!


    Thiago Coelho - Líder das Comunidades .NET Coders e Windows 8 Brasil
    thiagocoelho.net | @thiagokoelho

    quinta-feira, 24 de janeiro de 2013 16:00
  • Vem facil cara:

    http://www.devmedia.com.br/openfiledialog-no-vb-net/20427

    quinta-feira, 24 de janeiro de 2013 18:59
  • Vem facil cara:

    http://www.devmedia.com.br/openfiledialog-no-vb-net/20427

    Vinícius, já postei esse link acima, vi em outras threads que você ultimamente tem visto a resposta de alguém e respondido duplicado abaixo em parte, essa duplicação não é legal para o fórum.

    Peço que leia antes o conteúdo já postado e não dê CTRL+C / CTRL+V da resposta de alguém para que não hajam respostas duplicadas.

    Abraços!


    Thiago Coelho - Líder das Comunidades .NET Coders e Windows 8 Brasil
    thiagocoelho.net | @thiagokoelho

    quinta-feira, 24 de janeiro de 2013 19:06
  • Caro Thiago,

    Pesquisar no google é facil , as vezes aparecem os mesmos resultados de respostas.. mas, fique tranquilo antes de postar verificarei se alguém já copio e colou o link para alguem como vc faz em todas as suas respostas.

    abraços

    http://www.useaporradogoogle.com.br/

     
    sábado, 26 de janeiro de 2013 17:38
  • Vinicius,

    Acho que você entendeu errado, eu falei contigo com o total respeito visando o bom andamento da comunidade aqui nos fóruns, mas acho que você ainda não entendeu a importância da comunidade de desenvolvedores por aqui, o intuito é aprendermos uns com os outros em um ambiente civilizado e educado.

    Você entenderá qual é realmente o significado de uma comunidade quando aprender a conviver dentro dela, quando você contribuir com o prazer de contribuir.

    Abraços.


    Thiago Coelho - Líder das Comunidades .NET Coders e Windows 8 Brasil
    thiagocoelho.net | @thiagokoelho

    segunda-feira, 28 de janeiro de 2013 13:34
  • Siga a seguinte linha de raciocinio,

    Para selecionar a foto e inserir no banco,voce usa o seguinte codigo:

    //Imports
    
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using System.IO;
    using System.Data.SqlClient;
    
    
             string _string  = "Server=" + Environment.MachineName + "\\SQLEXPRESS;Database=D5;Trusted_Connection=True;";
             SqlConnection _bd = new SqlConnection();
             
    
            private void cmdEscolhe_Click(object sender, EventArgs e)
            {
                try
                {
                    _bd.ConnectionString = _string;
    
                    //Seleciona o arquivo que o usuario escolheu
                    ofd.ShowDialog();
                    //carrrega o stream com o arquivo baixado do open file dialog
                    Stream _stream = ofd.OpenFile();
                    //recebe o binario do arquivo carregado do stream
                    BinaryReader _bin = new BinaryReader(_stream);
                    //declara o array de bytes
                    Byte[] _byte;
                    //Convert explicitamente o tamanho do stream em valor inteiro
                    int _lenStream = Convert.ToInt32(_stream.Length);
                    //o Array de bytes recebe os dados do proprio stream do arquivo
                    _byte = _bin.ReadBytes(_lenStream);
                    //somente mostra a imagem
                    piclocal.ImageLocation = ofd.FileName;
                    try
                    {
                        //Abre conexao com o banco
                        _bd.Open();
                        //Cria uma query 
                        SqlCommand cmdSql = new SqlCommand("INSERT INTO IMAGEM(IMAGEM_BIN) VALUES(@IMAGEM_BIN)", _bd);
                        //parametriza as informaçoea para inserção no banco com os devidos tipos de dados
                        SqlParameter _binBanco = new SqlParameter("@IMAGEM_BIN", SqlDbType.Image);
                        //Adiciona os parametros
                        cmdSql.Parameters.Add(_binBanco);
                        //dentro do collections parametros,seta o valor no array
                        cmdSql.Parameters[0].Value = _byte;
                        //executa a query
                        cmdSql.ExecuteNonQuery();
                    }
                    finally
                    {
                        //fecha a conexao
                        _bd.Close();
                    }
                }
                finally
                {
    
                }
            }
    
           

    Resgatando a foto no banco:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using System.IO;
    using System.Data.SqlClient;
    
    
            private void cmdResgata_Click(object sender, EventArgs e)
            {
                _bd.ConnectionString = _string;
                _bd.Open();
                //cria o select
                using (SqlCommand comando = new SqlCommand("SELECT * FROM IMAGEM WHERE CODIGO = 10", _bd))
                {
                    //faz a busca
                    SqlDataReader dr = comando.ExecuteReader();
                    try
                    {
                        //le os dados encontrados
                        dr.Read();
                        //tem linha?
                        if ((dr.HasRows))
                        {
                            //byte recebe os bytes do datareader passando os parametros para a funcao 'GetBytes'
                            byte[] _Bin = new byte[dr.GetBytes(1, 0, null, 0, int.MaxValue);
                            dr.GetBytes(1, 0, _Bin, 0, _Bin.Length);
                            MemoryStream _memoria = new MemoryStream(_Bin);
                            //Exibe a imagem resgatada dentro do picture box
                            picbanco.Image = Image.FromStream(_memoria);
                        }
                    }
                    finally
                    {
                        _bd.Close();
                    }
    
                }
            }
        }
    }

    No banco de dados existe uma tabela com o campo IMAGE.

    Microsoft Technology Associate (MTA)

    quarta-feira, 30 de janeiro de 2013 11:19