Usuário com melhor resposta
Salvar caminho arquivo banco de dados MySQL

Pergunta
-
Pessoal boa tarde.
Estou desenvolvendo um software onde capturo a imagem de uma webcam e salvo em uma pasta especifica. Ate ai tudo bem, mas quando vou salvar o caminho do arquivo no banco de dados MySQL o caminho não esta sendo gravado com as barras de separação de diretórios em vez de gravar assim c:\teste\teste1 esta sendo gravado assim C:TesteTeste1 como consigo resolver isso? Quando recupero o caminho sai do mesmo jeito.
Desde já agradeço a ajuda.
Alexandre Pacheco
Alexandre Gonçalves Pacheco
Respostas
-
Olá alexandre,
você pode dar um replace no SaveFileDialog. Exemplo:
Dim strCaminho As String = Replace(SaveFileDialog.FileName,"\","\\")
ou
Você pode dar o replace só para invertar a barra. Exemplo:
Dim strCaminho As String = Replace(SaveFileDialog.FileName,"\","/")
o Windows vai entender o caminho c:/teste/teste1 e o mysql vai entender a '/'
Att
Wennder A. Santos
Se foi útil, marque como útil. Se respondeu sua pergunta ou sanou sua dúvida, marque como resposta.
- Editado Wennder SantosMVP segunda-feira, 13 de janeiro de 2014 17:51
- Marcado como Resposta Alexandre Gonçalves Pacheco segunda-feira, 13 de janeiro de 2014 18:07
-
VB
Dim ds as DataSet = new DataSet("MinhaTabela")
ds = SelecionarImagem(Codigo);
pictureBox1.Image = ds.Tables(0).Rows(0)("Caminho").ToString()
Sobre o SqlDataReader
- Editado Rafael Augusto Miranda segunda-feira, 13 de janeiro de 2014 19:38
- Marcado como Resposta Alexandre Gonçalves Pacheco terça-feira, 14 de janeiro de 2014 10:57
Todas as Respostas
-
Olá alexandre,
para inserir '\' você deve colocar 2 '\\', ou seja, faça da seguinte forma:
'c:\\teste\\teste1'
Att
Wennder A. Santos
Se foi útil, marque como útil. Se respondeu sua pergunta ou sanou sua dúvida, marque como resposta.
- Editado Wennder SantosMVP segunda-feira, 13 de janeiro de 2014 17:19
-
-
Do jeito que programei aqui não tem como eu editar o caminho. Eu utilizo o SaveFileDialog para selecionar o arquivo ai pega todo o caminho mais o nome do arquivo e salva no banco de dados. Só que não esta salvando as barras.
Alexandre Gonçalves Pacheco
-
Olá alexandre,
você pode dar um replace no SaveFileDialog. Exemplo:
Dim strCaminho As String = Replace(SaveFileDialog.FileName,"\","\\")
ou
Você pode dar o replace só para invertar a barra. Exemplo:
Dim strCaminho As String = Replace(SaveFileDialog.FileName,"\","/")
o Windows vai entender o caminho c:/teste/teste1 e o mysql vai entender a '/'
Att
Wennder A. Santos
Se foi útil, marque como útil. Se respondeu sua pergunta ou sanou sua dúvida, marque como resposta.
- Editado Wennder SantosMVP segunda-feira, 13 de janeiro de 2014 17:51
- Marcado como Resposta Alexandre Gonçalves Pacheco segunda-feira, 13 de janeiro de 2014 18:07
-
-
Wennder preciso de sua ajuda.
Como faço para localizar o arquivo na pasta utilizando o caminho e mostrando ele na tela? Preciso jogar um arquivo bmp em um picture box que esta na pasta especificada pelo caminho.
Obrigado pela ajuda.
Alexandre Pacheco
Alexandre Gonçalves Pacheco
-
O caminho e nome da imagem já esta gravado no banco. Você pode pelo codigo fazer select no banco recuperar esse caminho e setar o caminho no picturebox
DataSet ds = SelecionarImagem(Codigo);
pictureBox1.Image = ds.Tables[0].Rows[0]["Caminho"].ToString()
Detalhes se após setar o caminho no picture e essa imagem não estiver na pasta, não vai carregar
- Editado Rafael Augusto Miranda segunda-feira, 13 de janeiro de 2014 19:03
-
Olá Alexandre,
de uma olhada no que o Rafael Algusto sugeriu, vai funcionar perfeitamente, você só terá que traduzir para o vb.
OBS: Se não for usar nenhuma propriedade específica do DataSet opte por utilizar DataReader por questão de desempenho.
Wennder
- Editado Wennder SantosMVP segunda-feira, 13 de janeiro de 2014 19:15
-
VB
Dim ds as DataSet = new DataSet("MinhaTabela")
ds = SelecionarImagem(Codigo);
pictureBox1.Image = ds.Tables(0).Rows(0)("Caminho").ToString()
Sobre o SqlDataReader
- Editado Rafael Augusto Miranda segunda-feira, 13 de janeiro de 2014 19:38
- Marcado como Resposta Alexandre Gonçalves Pacheco terça-feira, 14 de janeiro de 2014 10:57
-
Rafael bom dia.
Utilizei o código abaixo e esta dando o erro de que a variavel que é string nao pode ser convertida para imagem.
SQLTESTE = "SELECT * FROM tabalojado WHERE Matricula LIKE '" + TextBox1.Text + "' " comm.CommandText = SQLTESTE myReader = comm.ExecuteReader 'Localiza codigo do alojado While myReader.Read() 'variavel recebe o codigo do alojado teste = myReader.GetString(13) Label1.Text = teste End While PictureBox1.Image = teste 'erro esta aqui myReader.Close()
O erro dado é "Value of type 'String' cannot be converte to 'System.Drawing.Image'"
Alexandre Gonçalves Pacheco
-
-
Isso mesmo é essa propriedade. A propriedade Image do picturebox, é para o caso se a imagem estive sendo guardada em forma array de byte (byte[]) no banco de dados.
Dica: quando passar os parametro na sql use o sqlparameter.
Segue trecho do artigo do macoratti
"...você nunca deve usar este tipo de construção em seus comandos. Esse tipo de construção abre uma porta que seja feita um ataque conhecido como injeção SQL, onde um código malicioso pode ser injetado no seu código.
Para evitar esse tipo de problema devemos usar parâmetros pois qualquer informação colocada como parâmetro será tratada como um campo de dados, e não como parte da instrução SQL tornando assim sua aplicação mais segura"
Faça dessa forma:
SQLTESTE = "SELECT * FROM tabalojado WHERE Matricula LIKE @Matricula
comm.CommandText = SQLTESTE
comm.Parameters.Add(new SqlParameter("@Matricula", txtMatricula));
myReader = comm.ExecuteReaderReferencias:
http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlparameter(v=vs.110).aspx
http://www.macoratti.net/09/07/c_adn_7.htm
- Editado Rafael Augusto Miranda terça-feira, 14 de janeiro de 2014 14:57