Usuário com melhor resposta
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!!!
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)
- Marcado como Resposta Ricardo RussoModerator quinta-feira, 31 de janeiro de 2013 13:13
-
Se você quer escolher as fotos, use um OpenFileDialog.
Entenda como funciona nesses links:
Thiago Coelho - Líder das Comunidades .NET Coders e Windows 8 Brasil
thiagocoelho.net | @thiagokoelho- Marcado como Resposta Ricardo RussoModerator quinta-feira, 31 de janeiro de 2013 13:14
Todas as Respostas
-
Se você quer escolher as fotos, use um OpenFileDialog.
Entenda como funciona nesses links:
Thiago Coelho - Líder das Comunidades .NET Coders e Windows 8 Brasil
thiagocoelho.net | @thiagokoelho- Marcado como Resposta Ricardo RussoModerator quinta-feira, 31 de janeiro de 2013 13:14
-
-
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 -
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/
-
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 -
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)
- Marcado como Resposta Ricardo RussoModerator quinta-feira, 31 de janeiro de 2013 13:13