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

05/07/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.

Breno Ferreira

Melhor resposta

07/07/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.



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 :
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 :

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 :
[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]

Jair Souza

Responder Citar

Outras Respostas

06/07/2014

Mariana Carvalho

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

06/07/2014

Breno Ferreira

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.

[img]http://arquivo.devmedia.com.br/forum/imagem/375991-20140706-211952.png[/img]
Responder Citar

07/07/2014

Fabiano Carvalho

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.
Responder Citar

07/07/2014

Lucas Rocha Currículo

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
Responder Citar

09/07/2014

Breno Ferreira

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.
Responder Citar

09/07/2014

Jair Souza

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.

[img]http://arquivo.devmedia.com.br/forum/imagem/343353-20140709-154944.png[/img]
Responder Citar

09/07/2014

Mariana Carvalho

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.
Responder Citar