none
Inserir Imagens no SQL....AJUDA RRS feed

  • Pergunta

  •  

    Galera,
    estou desenvolvendo um Sistema de Controle de Acesso / Portaria em asp.net C#, onde, as pessoas seram cadastradas por nome, cpf, telefone e foto.

    a foto vai ser tirada por uma webcam e vai para um PictureBox.
    bom quero saber como faço pra salvar essa imagem desse PictureBox no SQL, ja pesquisei e só sei que tem que transformar ela em código binário, mas não sei como posso fazer isso.
     
    Pessoal postem opniões ae por favor só esta faltando isso para poder entregar o projeto...

    abraços
    terça-feira, 15 de julho de 2008 17:42

Respostas

  • galera to usando um metodo que achei na net q é o seguinte:

    ele transforma a foto pra binário.

     

     

    private

     

    byte[] GetPhoto(string filePath)

    {

     

     

    FileStream stream = new FileStream(filePath, FileMode.Open, FileAccess.Read);// O objeto stream recebe como parametro o caminho do arquivo , logo ap¢s abre e lˆ o arquivo.

     

     

    BinaryReader reader = new BinaryReader(stream);

     

     

    byte[] photo = reader.ReadBytes((int)stream.Length);

    reader.Close();

    stream.Close();

     

     

    return photo;

    }

     

    //depois chamo o método, passando o endereço url da foto.

     

     

    protected void btnSalvar_Click(object sender, EventArgs e)

    {

    Byte[] photo = GetPhoto(img_Visitante.ImageUrl);

     

     

    ControleVisitantes controle = new ControleVisitantes();

    }

     

    //depois faço a inserção

     

     

    public int InsereVisitantes(string nome, string obs, string cpf, string rg, string tel, string setor, byte[] foto)

    {

     

     

    Visitantes visiTemp = null;

    strQuery =

     

    "INSERT INTO VISITANTES (NOME, CPF, RG, OBS, TEL, SETOR, FOTO) VALUES ('" + nome + "','" + cpf + "','" + rg + "','" + obs + "','"+tel+"','"+setor+"',"+foto+")";

    comando =

     

    new SqlCommand(strQuery, con);

    con.Open();

     

     

    int i = comando.ExecuteNonQuery();

     

     

    return i;

     

    }

     

    mas na hora de fazer a inserção esta dando o seguinte erro:

     

    DirectoryNotFoundException was unhandled by user code
      Message="Could not find a part of the path 'C:\\Documents and Settings\\jlocately\\Desktop\\CONTROLE DE ACESSO\\Projeto ControleAcesso\\ProjetoFinComen\\ControleAcesso\\~\\Imagens_Visitantes\\nova.jpg'."
     

    Alguem sabe pq isso ta acontecendo??

     

    no BD coloquei o campo foto como sendo um VARBINARY (MAX) alguem sabe se é isso msm??


    Bom dia Amigo

    Tem  como voce enviar este sistema no meu email, dai vou tentando fazer esta captura de foto e gravar no banco, eu já fiz com Delph, porem as fotos eram armazenadas em um diretorio e no banco só o caminho da imagem.

    segunda-feira, 26 de abril de 2010 15:22

Todas as Respostas

  • João Paulo,

     

     

     Dá uma olhada neste post, tem dois links uteis que podem tirar suas dúvidas :

     

    http://forums.microsoft.com/MSDN-BR/ShowPost.aspx?PostID=3473938&SiteID=21

     

     

    Espero ter ajudado

     

    terça-feira, 15 de julho de 2008 18:31
  •  

    nesses posts não tinham como salvar imagem no BD.
    quarta-feira, 16 de julho de 2008 17:17
  • galera to usando um metodo que achei na net q é o seguinte:

    ele transforma a foto pra binário.

     

     

    private byte[] GetPhoto(string filePath)

    {

    FileStream stream = new FileStream(filePath, FileMode.Open, FileAccess.Read);// O objeto stream recebe como parametro o caminho do arquivo , logo ap¢s abre e lˆ o arquivo.

    BinaryReader reader = new BinaryReader(stream);

    byte[] photo = reader.ReadBytes((int)stream.Length);

    reader.Close();

    stream.Close();

    return photo;

    }

     

    //depois chamo o método, passando o endereço url da foto.

    protected void btnSalvar_Click(object sender, EventArgs e)

    {

    Byte[] photo = GetPhoto(img_Visitante.ImageUrl);

    ControleVisitantes controle = new ControleVisitantes();

    }

     

    //depois faço a inserção

    public int InsereVisitantes(string nome, string obs, string cpf, string rg, string tel, string setor, byte[] foto)

    {

    Visitantes visiTemp = null;

    strQuery = "INSERT INTO VISITANTES (NOME, CPF, RG, OBS, TEL, SETOR, FOTO) VALUES ('" + nome + "','" + cpf + "','" + rg + "','" + obs + "','"+tel+"','"+setor+"',"+foto+")";

    comando = new SqlCommand(strQuery, con);

    con.Open();

    int i = comando.ExecuteNonQuery();

    return i;

     

    }

     

    mas na hora de fazer a inserção esta dando o seguinte erro:

     

    DirectoryNotFoundException was unhandled by user code
      Message="Could not find a part of the path 'C:\\Documents and Settings\\jlocately\\Desktop\\CONTROLE DE ACESSO\\Projeto ControleAcesso\\ProjetoFinComen\\ControleAcesso\\~\\Imagens_Visitantes\\nova.jpg'."
     

    Alguem sabe pq isso ta acontecendo??

     

    no BD coloquei o campo foto como sendo um VARBINARY (MAX) alguem sabe se é isso msm??

    quarta-feira, 16 de julho de 2008 18:14
  • galera to usando um metodo que achei na net q é o seguinte:

    ele transforma a foto pra binário.

     

     

    private

     

    byte[] GetPhoto(string filePath)

    {

     

     

    FileStream stream = new FileStream(filePath, FileMode.Open, FileAccess.Read);// O objeto stream recebe como parametro o caminho do arquivo , logo ap¢s abre e lˆ o arquivo.

     

     

    BinaryReader reader = new BinaryReader(stream);

     

     

    byte[] photo = reader.ReadBytes((int)stream.Length);

    reader.Close();

    stream.Close();

     

     

    return photo;

    }

     

    //depois chamo o método, passando o endereço url da foto.

     

     

    protected void btnSalvar_Click(object sender, EventArgs e)

    {

    Byte[] photo = GetPhoto(img_Visitante.ImageUrl);

     

     

    ControleVisitantes controle = new ControleVisitantes();

    }

     

    //depois faço a inserção

     

     

    public int InsereVisitantes(string nome, string obs, string cpf, string rg, string tel, string setor, byte[] foto)

    {

     

     

    Visitantes visiTemp = null;

    strQuery =

     

    "INSERT INTO VISITANTES (NOME, CPF, RG, OBS, TEL, SETOR, FOTO) VALUES ('" + nome + "','" + cpf + "','" + rg + "','" + obs + "','"+tel+"','"+setor+"',"+foto+")";

    comando =

     

    new SqlCommand(strQuery, con);

    con.Open();

     

     

    int i = comando.ExecuteNonQuery();

     

     

    return i;

     

    }

     

    mas na hora de fazer a inserção esta dando o seguinte erro:

     

    DirectoryNotFoundException was unhandled by user code
      Message="Could not find a part of the path 'C:\\Documents and Settings\\jlocately\\Desktop\\CONTROLE DE ACESSO\\Projeto ControleAcesso\\ProjetoFinComen\\ControleAcesso\\~\\Imagens_Visitantes\\nova.jpg'."
     

    Alguem sabe pq isso ta acontecendo??

     

    no BD coloquei o campo foto como sendo um VARBINARY (MAX) alguem sabe se é isso msm??


    Bom dia Amigo

    Tem  como voce enviar este sistema no meu email, dai vou tentando fazer esta captura de foto e gravar no banco, eu já fiz com Delph, porem as fotos eram armazenadas em um diretorio e no banco só o caminho da imagem.

    segunda-feira, 26 de abril de 2010 15:22
  • João,

    Alguma novidade quanto a essa sua dúvida?


    André Alves de Lima
    Visite o meu site: http://andrealveslima.spaces.live.com
    Me siga no Twitter: @andrealveslima
    sexta-feira, 7 de maio de 2010 23:50
    Moderador