none
Mostrar un archivo formato pgn o jpg en un picturebox en c# RRS feed

  • Pregunta

  • Buen dia!

    Mi duda es, como mostrar en un picturebox archivos que ya se encuentran en sql server con formato png y jpg, guardados como varchar.

    Mi tabla es Personal con un idempleado, iddocto, fecha registro y archivo (en esta se encuentran los archivos).

    lunes, 17 de febrero de 2020 16:51

Todas las respuestas

  •  con formato png y jpg, guardados como varchar.

    No puede ser. Necesitas un varbinary para guardar los png o jpg, no se pueden guardar directamente en un varchar. A no ser que primero tomes el binario y lo conviertas en texto usando alguna codificación tal como Base64. En este caso, es necesario saber qué es exactamente lo que se hizo al guardarlo para poder deshacer el proceso al leerlo.

    Si es un error en la pregunta, y realmente están como varbinary, entonces el proceso es el siguiente: Primero lees desde la base de datos a un array de bytes (esto se puede hacer de muchas formas distintas, necesitaríamos saber qué mecanismo de acceso a base de datos tienes configurado en tu programa para amoldarnos a él). Después abres un MemoryStream contra el array de bytes. Entonces construyes un Image con una sobrecarga del constructor que toma el Stream como argumento. Y finalmente, asignas ese Image al PictureBox.

    A no ser que lo haya entendido mal y que lo que tengas guardado en el varchar sea la ruta del archivo (no el contenido del archivo). En ese caso, las cosas son muy distintas, simplemente lees la ruta a un string y luego llamas a Image.FromFile pasándole la ruta.



    lunes, 17 de febrero de 2020 17:17
    Moderador
  • hola

    >>archivos que ya se encuentran en sql server con formato png y jpg, guardados como varchar

    Pero en la db tienes el nombre del archivo o su contenido del archivo? lo pregunto porque al ser varchar no creo que este el archivo en si, sino quizas su nombre o la ruta

    conoces ado.net para realizar el SELECT a la tabla?

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    lunes, 17 de febrero de 2020 17:30
  • Hola! la verdad soy nuevo en esto, la tabla ya estaba creada con los datos, y a mi me piden que muestre la foto en un picturebox


    Quisiera saber como recuperar estos archivos en un picturebox.


    • Editado sistemashz lunes, 17 de febrero de 2020 17:42 error de desscripcion
    lunes, 17 de febrero de 2020 17:30
  • Es verdad, una disculpa, lo que se encuentra es la ruta de la imagen.

    Estan en un servidor y esa es la ruta para acceder a cada foto.  Espero me puedan ayudar.

    lunes, 17 de febrero de 2020 17:33
  • hola

    >>Estan en un servidor y esa es la ruta para acceder a cada foto

    imagino una ruta de red a la cual los usuario de la app tienen acceso, no ?

    podria ser algo como esto

    string connstring = "connection string";  
    using (SqlConnection cn = new SqlConnection(connstring)) {  
        cn.Open();  
     
        string sql = "SELECT  iddocto, fecharegistro, archivo FROM Tabla WHERE idempleado =@id";  
        SqlCommand cmd = new SqlCommand(query, cn);  
        cmd.Parameters.AddwithValue("@id", idempleado);  
     
        SqlDataReader reader = cmd.ExecuteReader();  
     
        if (reader.Read())  
        {  
            FechaRegistro.Text = Convert.ToString(reader["fecharegistro"]);  
            PictureBox.Text = Image.FromFile(reader["archivo"].ToString());  
        }  
     
    } 


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Propuesto como respuesta Diana AcuñaModerator lunes, 17 de febrero de 2020 18:09
    • Marcado como respuesta sistemashz lunes, 17 de febrero de 2020 21:12
    • Desmarcado como respuesta sistemashz sábado, 14 de marzo de 2020 19:43
    lunes, 17 de febrero de 2020 17:49
  • Muchas gracias! lo probare!
    lunes, 17 de febrero de 2020 18:13