Array
(
    [0] => stdClass Object
        (
            [Votos_Balanceados] => 1
            [id] => 484750
            [titulo] => Como criar um formulário de .NET e sql com foto.
            [dataCadastro] => DateTime Object
                (
                    [date] => 2014-07-07 07:49:25
                    [timezone_type] => 3
                    [timezone] => America/Sao_Paulo
                )

            [isFirstPost] => -1
            [idUsuario] => 343353
            [status] => A
            [isExample] => 
            [NomeUsuario] => Jair Souza
            [Apelido] => 
            [Foto] => Pesquisar7.bmp
            [Conteudo] => [quote]Indico você não salvar  a imagem no banco de dados e sim em alguma pasta da aplicação e no banco salvar apenas o caminho.[/quote]


Concordo com o Fabiano, tenho este exemplo é em C# para windows form e o banco é Access, para teres a ideia de como fazer acho que serve.
Criei uma pasta chamada "fotos" que fica no mesmo local do aplicativo, abaixo o código, espero que possa lhe ajudar.

Adicionar a Foto :
[code]private void BtnAdFoto_Click(object sender, EventArgs e)
{
try
{
if (Convert.ToInt32(iDLocatarioTextBox.Text) > 0)
{
openFileDialog1.ShowDialog();

Bitmap bmp = new Bitmap(openFileDialog1.FileName);
Bitmap bmp3 = new Bitmap(bmp, pictureBox2.Size);

pictureBox2.Image = bmp3;

pictureBox2.Image.Save(Application.StartupPath.ToString() + "\\FotosLocatarios\\" + iDLocatarioTextBox.Text + ".png", System.Drawing.Imaging.ImageFormat.Png);

fotoTextBox.Text = Application.StartupPath.ToString() + "\\FotosLocatarios\\" + iDLocatarioTextBox.Text + ".png";

this.Validate();
this.locatarioBindingSource.EndEdit();
this.tableAdapterManager.UpdateAll(this.bDBibliotecaDataSet);

MessageBox.Show("Foto Salva com Sucesso !", "Salvar", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
catch (Exception)
{
MessageBox.Show("Cancelada Inclusão de Foto !", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
[/code]


Excluir a Foto :

[code]private void BtnExFoto_Click(object sender, EventArgs e
{
if (MessageBox.Show("Excluir Foto ?", "Excluir", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
pictureBox2.ImageLocation = Application.StartupPath.ToString() + "\\FotosLocatarios\\" + "SemFoto.png";

if (fotoTextBox.Text != "")
{
if (System.IO.File.Exists(fotoTextBox.Text))
{
System.IO.File.Delete(fotoTextBox.Text);
}
fotoTextBox.Text = "";
}
this.Validate();
this.locatarioBindingSource.EndEdit();
this.tableAdapterManager.UpdateAll(this.bDBibliotecaDataSet);
MessageBox.Show("Foto Excluída com Sucesso !", "Excluir", MessageBoxButtons.OK, MessageBoxIcon.Information);

if (fotoTextBox.Text != "")
{
pictureBox2.ImageLocation = fotoTextBox.Text;
}
else
{
pictureBox2.ImageLocation = Application.StartupPath.ToString() + "\\FotosLocatarios\\" + "SemFoto.png"; //Criei uma imagem com o texto "Sem Foto", para que o picturebox não fique vazio enquanto não é adicionada foto.
}
}
else
{
MessageBox.Show("Exclusão Cancelada !", "Excluir", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
[/code]

No form tem um textbox que mostra o endereço onde está a foto e um picturebox que mostra a foto :
[img]http://arquivo.devmedia.com.br/forum/imagem/343353-20140707-075358.png[/img]


[img]http://arquivo.devmedia.com.br/forum/imagem/343353-20140707-080317.png[/img] ) )

Como criar um formulário de .NET e sql com foto.

Breno Ferreira
   - 05 jul 2014

Ai galera tudo bem?
Alguém poderia me ajudar, pois sou novo em c# e sql.
Bom queria criar um formulário de c# com os seguintes campos(Nome, CPF, DataNascimento, Foto) e no sql. No c# iria fazer a função de inserir, alterar e excluir. Mas a dificuldade e de inserir e pesquisar a foto no sql.
Fico no aguardo!
Obrigado.

Post mais votado

Jair Souza
   - 07 jul 2014


Citação:
Indico você não salvar a imagem no banco de dados e sim em alguma pasta da aplicação e no banco salvar apenas o caminho.


Concordo com o Fabiano, tenho este exemplo é em C# para windows form e o banco é Access, para teres a ideia de como fazer acho que serve.
Criei uma pasta chamada "fotos" que fica no mesmo local do aplicativo, abaixo o código, espero que possa lhe ajudar.

Adicionar a Foto :
#Código

private void BtnAdFoto_Click(object sender, EventArgs e)
        {
            try
            {
                if (Convert.ToInt32(iDLocatarioTextBox.Text) > 0)
                {
                    openFileDialog1.ShowDialog();

                    Bitmap bmp = new Bitmap(openFileDialog1.FileName);
                    Bitmap bmp3 = new Bitmap(bmp, pictureBox2.Size);

                    pictureBox2.Image = bmp3;

                    pictureBox2.Image.Save(Application.StartupPath.ToString() + "\FotosLocatarios\" + iDLocatarioTextBox.Text + ".png", System.Drawing.Imaging.ImageFormat.Png);

                    fotoTextBox.Text = Application.StartupPath.ToString() + "\FotosLocatarios\" + iDLocatarioTextBox.Text + ".png";

                    this.Validate();
                    this.locatarioBindingSource.EndEdit();
                    this.tableAdapterManager.UpdateAll(this.bDBibliotecaDataSet);

                    MessageBox.Show("Foto Salva com Sucesso !", "Salvar", MessageBoxButtons.OK, MessageBoxIcon.Information);
                 }
            }
            catch (Exception)
            {
                MessageBox.Show("Cancelada Inclusão de Foto !", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }


Excluir a Foto :

#Código
private void BtnExFoto_Click(object sender, EventArgs e
        {
            if (MessageBox.Show("Excluir  Foto ?", "Excluir", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {
                pictureBox2.ImageLocation = Application.StartupPath.ToString() + "\FotosLocatarios\" + "SemFoto.png";

                if (fotoTextBox.Text != "")
                {
                    if (System.IO.File.Exists(fotoTextBox.Text))
                    {
                        System.IO.File.Delete(fotoTextBox.Text);
                    }
                    fotoTextBox.Text = "";
                }
                this.Validate();
                this.locatarioBindingSource.EndEdit();
                this.tableAdapterManager.UpdateAll(this.bDBibliotecaDataSet);
                MessageBox.Show("Foto Excluída com Sucesso !", "Excluir", MessageBoxButtons.OK, MessageBoxIcon.Information);
                
                if (fotoTextBox.Text != "")
                {
                    pictureBox2.ImageLocation = fotoTextBox.Text;
                }
                else
                {
                    pictureBox2.ImageLocation = Application.StartupPath.ToString() + "\FotosLocatarios\" + "SemFoto.png"; //Criei uma imagem com o texto "Sem Foto", para que o picturebox não fique vazio enquanto não é adicionada foto.
                }
            }
            else
            {
                MessageBox.Show("Exclusão Cancelada !", "Excluir", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }


No form tem um textbox que mostra o endereço onde está a foto e um picturebox que mostra a foto :
Clique na imagem para abrir em uma nova janela

Clique na imagem para abrir em uma nova janela

Mariana Carvalho
   - 06 jul 2014

a sua pergunta está relacionada ao tipo de dado de imagem?

Breno Ferreira
   - 06 jul 2014

Preciso criar uma formulário de cadastro no c#, mais a duvida e como buscar a imagem no c# e salvar no sql. Quais tratamento são nescessario e como que faço a conversão da imagem para o sql.

Clique na imagem para abrir em uma nova janela

Faabiianooc
   - 07 jul 2014

Indico você não salvar a imagem no banco de dados e sim em alguma pasta da aplicação e no banco salvar apenas o caminho.

Lucas Rocha
|
MVP
    07 jul 2014

Concordo com todos, O melhor é inserir apenas o caminho da foto no banco e não a foto..

Trabalho dessa forma e é muito melhor.

abraços

Breno Ferreira
   - 09 jul 2014

Jair Souza fiz de acordo como você falou, mas poderia exemplificar mais ou passar um tutorial algo que possa tirar dúvida em relação a salvar o caminho da imagem no sql.

Deste já agradeço todos pelas as dicas.

Jair Souza
   - 09 jul 2014

Esta linha é o caminho/local onde fica a imagem :

fotoTextBox.Text = Application.StartupPath.ToString() + "\FotosLocatarios\" + iDLocatarioTextBox.Text + ".png";

fotoTextBox.Text – Como o nome já diz é o textbox.

Application.StartupPath.ToString() – É o local onde está o aplicativo.(Não sei se é igual em SQL)

+ "\FotosLocatarios\" + - É o nome da pasta onde ficam as fotos.

iDLocatarioTextBox.Text – É o código do registro do locatário, pois assim fica vinculado número do registro com a foto, a foto 1 será do registro 1 e assim por diante.

".png" – É a extensão em que foi salvo o arquivo.

Espero que lhe ajude, como eu disse no inicio este é em access, ainda não usei SQL.

Clique na imagem para abrir em uma nova janela

Mariana Carvalho
   - 09 jul 2014


Citação:
Indico você não salvar a imagem no banco de dados e sim em alguma pasta da aplicação e no banco salvar apenas o caminho.


concordo que essa é a melhor forma.