none
Guardar ruta de imagen en Mysql c# RRS feed

  • Pregunta

  • Hola amigos el problema que yo tengo es que cuando envio la ruta de la imagen desde un textbox a la Mysql se guarda asi: C:UsersEL Protegido HDPicturesembe.JPG y yo quiero que se guarde asi: C:\Users\EL Protegido HD\Pictures\bembe.JPG alguien me ayuda como se ase?


    miércoles, 17 de abril de 2013 4:17

Todas las respuestas

  • hola

    pareciera que por algun motivo esta quitando los \

    como es que asignas esta ruta a la query que inserta ? imagino utilizas parametro no

    using (MySqlConnection conn = new MySqlConnection("<connection string>"))  
    {  
        conn.Open();  
     
        string query = "INSERT INTO NombreTabla (campo1, campo2) VALUES (@param1, @param2)";  
        MySqlCommand cmd = new MySqlCommand(query, conn);  
        cmd.Parameters.AddWithValue("@param1", ruta);  
        cmd.Parameters.AddWithValue("@param2", valor);  
     
        cmd.ExecuteNonQuery();  
     
    }

    algo como estos usas para insertar

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    miércoles, 17 de abril de 2013 5:08
  • hola leantro es un update 

    cmd.CommandText = "UPDATE usuarios SET imagen='" + textBox5.Text + "' WHERE usuario='" + Login.usuariovakano + "' ";
    cmd.ExecuteNonQuery();

    este es e codigo que pongo dentro del boton

    miércoles, 17 de abril de 2013 5:23
  • alli veo el problema eso de concatenar en un string los valores de la query es para problemas

    convierte esa query usando parametros y valida si eso soluciona el problema de la ruta de la imagen


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    miércoles, 17 de abril de 2013 5:49
  • En mysql "\" este caracter es especial (la verdad no te puedo decir el porque)

    pero para que te guarde la ruta como quieres reemplazalo por "\\" de esta manera el de los dos backslash te reconoce uno.

    txt_LaRuta.text = txt_LaRuta.text.Replace("\", "\\");


    aunque concuerdo con Leandro en lo de concatenar los querys es desastroso, 

    el query esta bien lo unico que falta para que reconozca la ruta es lo qeu te menciono en la primera parte..

    espero te sirva la informacion...

    • Editado Arnold J Morales miércoles, 17 de abril de 2013 16:34 Agregar Informacion
    miércoles, 17 de abril de 2013 16:33
  • En mysql "\" este caracter es especial (la verdad no te puedo decir el porque)

    pero para que te guarde la ruta como quieres reemplazalo por "\\" de esta manera el de los dos backslash te reconoce uno.

    txt_LaRuta.text = txt_LaRuta.text.Replace("\", "\\");


    aunque concuerdo con Leandro en lo de concatenar los querys es desastroso, 

    el query esta bien lo unico que falta para que reconozca la ruta es lo qeu te menciono en la primera parte..

    espero te sirva la informacion...

    Gracias Arnold J Morales eso me soluciono el problema, simplemente lo que tuve que aser fue agregarle el codigo Replace en un boton y se remplasaron, Gracias...!
    viernes, 26 de abril de 2013 2:28
  • vuelvo a remarcar, no olvides usar parametros

    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    viernes, 26 de abril de 2013 7:09
  • De nada, para eso estamos, ayudarnos unos a otros 

    Bless

    jueves, 2 de mayo de 2013 14:44
  • Gracias hermano!

    miércoles, 10 de mayo de 2017 5:40
  • Hola a todos me cuelgo de este foro ya que yo tengo el mismo problema para almacenar la ruta de mi directorio dentro de mi base de datos MySql aunque he realizado parametro y el replace no logro que mi ruta se almacene.  Es posible que este realizando mal dicho ingreso gracias. mi codigo es asi para realizar la query (dicha query es un metodo que tengo en mi clase de conexion)

    public void InsertError(string idFile, string idUser,string directoryFile, string nameFile)
            {
                string errorFile = "ERROR";
                //string query = "insert into cdcontrolst.cdchorarios values('"+idmachine+"', '"+idtecnico+"','"+centrada+"' ,'"+csalida+"','"+comentario+"')";
                //"('"+txtMachine.Text+"','"+txtUser+"','"lblTime.Text"','" + lblTime.Text + "','" + txtComentario.Text + "')";
                string query = "INSERT INTO RegistroFTP.FileFTP (idFile,idUser,directoryFile,nameFile,statusFile) VALUES('" + idFile + "','" + idUser + "','C:\\Parte Digital\\', '" + nameFile + "','ERROR');";
                string test = "INSERT INTO RegistroFTP.FileFTP(idFile,idUser,directoryFile,nameFile,statusFile)VALUES(?idFile,?idUser,?directoryFile,?nameFile,?statusFile);";
    
    
                //open connection
                if (this.OpenConnection() == true)
                {
                    //create command and assign the query and connection from the constructor
                    MySqlCommand cmd = new MySqlCommand(query, connection);
                    cmd.Parameters.AddWithValue("?idFile",idFile);
                    cmd.Parameters.AddWithValue("?idUser", MySql.Data.MySqlClient.MySqlDbType.VarChar).Value = idUser;
                    cmd.Parameters.AddWithValue("?directoryFile", MySql.Data.MySqlClient.MySqlDbType.VarChar).Value = directoryFile;
                    cmd.Parameters.AddWithValue("?nameFile", MySql.Data.MySqlClient.MySqlDbType.VarChar).Value = nameFile;
                    cmd.Parameters.AddWithValue("?statusFile", MySql.Data.MySqlClient.MySqlDbType.VarChar).Value = errorFile;
    
                    //Execute command
                    cmd.ExecuteNonQuery();
    
                    //close connection
                    this.CloseConnection();
                }
            }

    Asi tengo definida mis string para utilizar dicho metodo

    //Guardar registro de error de envio
                    string idFile=txtIdDocument.Text;
                    string idUser=txtIdUser.Text;
                    string directoryFile = "C:\\Parte2\\";
                    string nameFile=formatCode;
    
                    registro.InsertError(idFile, idUser, directoryFile, nameFile);
    Cuando realia la query por medio de parametros los registros quedan nulos y cuando realizo por medio de cadena presenta el error en el campo de directoryFile

    miércoles, 12 de julio de 2017 16:46
  •         Dim OpenFileDialog1 As New OpenFileDialog()
            If OpenFileDialog1.ShowDialog() = DialogResult.OK Then
                txtruta.Text = OpenFileDialog1.FileName
            End If

      Puedes hacerlo asi 


    Pasa los puntos prro v:

    miércoles, 12 de julio de 2017 17:08
  • Autis gracias por tu respuesta pero lo que necesito es guardar la ruta del directorio en la base de datos MySql para luego realizar las acciones necesarias
    miércoles, 12 de julio de 2017 17:31
  • Autis gracias por tu respuesta pero lo que necesito es guardar la ruta del directorio en la base de datos MySql para luego realizar las acciones necesarias

    Era para complementar ya que supongo que no siempre sera la misma ruta... para eso necesitas un OFD y a eso le agregas txt_LaRuta.text = txt_LaRuta.text.Replace("\", "\\");   y asi tendrias un mejor resultado.

    Buena suerte .


    Pasa los puntos prro v:

    miércoles, 12 de julio de 2017 17:36
  • intente con el replace pero no hubo caso para almacenarla en la base de datos ya que la rua no la estoy extrayendo desde un textbox sino mas bien de una variable
    miércoles, 12 de julio de 2017 18:01
  • Y por que el afan de mandar tu directorio ala base de datos si es estatico te dije que usaras OFD pero no aplica a tu problema ...

    No te hagas tantos problemas guardalo en tu proyecto  con  current Directory


    Pasa los puntos prro v:

    miércoles, 12 de julio de 2017 20:54
  • Buenas, 

    Si la sacas de una variables es lo mismo

    directoryFile = directoryFile.Replace("\","\\");
    Atte

    No olvides votar si mi comentario te ha ayudado y marcarlo como respuesta si ha sido la solución!

    miércoles, 12 de julio de 2017 21:40
  • Hola 

    No veo bien que guardes la ruta de una imagen, ¿Que pasaría si alguien elimina la carpeta?, ¿Que pasaría si alguien cambia de directorio la carpeta?. Deberías guardar la imagen en la base de datos.

    Saludos.


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú


    jueves, 13 de julio de 2017 3:07