mostrar imagen con ruta en un picturebox [sql server y c#]

Iniciado por irvincnt93, 27 Enero 2015, 08:11 AM

0 Miembros y 1 Visitante están viendo este tema.

irvincnt93

gente bonita necesito de su ayuda...

en aplicación que estoy creando necesito mostrar una imagen que tengo almacenada en una base de datos (la pura ruta), la pude agregarla a la base de datos pero no se o no encuentro como mostrarla en en un picture box. ayuda porfa

mi base de datos se llama imagen y la tabla donde estoy guardando la dirección se llama direcció. ayuda por favor, dejo el código de inserción de la imagen por si les ayuda en algo
Código (csharp) [Seleccionar]

 comandos.Connection = conexion;
                       comandos.CommandText = "INSERT INTO actas (nombre,profesor,materia,direccion) VALUES (@nomImg, @profe, @mater, @path)";

                       conexion.Open();
                       comandos.Parameters.Clear();

                       comandos.Parameters.AddWithValue("nomImg", NombreImg);
                       comandos.Parameters.AddWithValue("profe", textBox1.Text);
                       comandos.Parameters.AddWithValue("mater", textBox2.Text);
                       comandos.Parameters.AddWithValue("path", Ubicacion);

                       int NFilas = comandos.ExecuteNonQuery();

                       if (NFilas > 0)
                       {
                           MessageBox.Show("Datos almacenados exitosamento");
                       }
                   }
                   catch (SqlException ex)
                   {
                       MessageBox.Show("fallo al generar la consulta: " + ex);
                   }
                   conexion.Close();
                   comandos.Dispose();
   


Mod: Sub-foro incorrecto, tema movido. Evita el uso de mayúsculas, tema modificado. Coloqué el codigo en etiquetas GeSHi para que fuera más legible

El Benjo

#1
Se me ocurren dos formas para hacerlo:

Código (csharp) [Seleccionar]
Picturebox1.Image = new Bitmap("Nombre yuta del archivo");

Código (csharp) [Seleccionar]
FileStream Flujo = new FileStream("Nombre y ruta del archivo", FileMode.Open);
byte[] Buffer = new byte[Flujo.Length];
Flujo.Read(Buffer, 0, (int)Flujo.Length);
Picturebox1.Image = new Bitmap(Flujo);
Flujo.Close();


Te recomiendo que utilices la segunda forma, ya que si por alguna razón tuvieras que abrir la imagen para trabajar con ella, no podrías hacerlo con el primer método, pues te bloquea el acceso al archivo.

Espero te sirva cualquiera de los dos códigos.
www.es.neftis-ai.com

Sí hay un mejor lenguaje de programación y es ese con el que puedes desarrollar tus objetivos.

irvincnt93

#2
gracias por la ayuda colega, pude solucionarlo de esta forma, se que me faltan algunas cosas, pero bueno, lo mas interesante ya está, seguiré perfencionando esto. Dejo por aquí mi código por si alguien lo llegue a necesitar

Código (Csharp) [Seleccionar]

private void btnMostrar_Click(object sender, EventArgs e)
       {
           
           comandos.Connection = conexion;
           conexion.Open();
           dt = ds.Tables.Add();
           comandos.CommandText = "SELECT materia,direccion FROM actas WHERE profesor= @prof ";
           comandos.Parameters.AddWithValue("@prof", textBox4.Text);
           
           try
           {
               SqlDataReader dr = comandos.ExecuteReader();

               if(dr.Read()){

                   textBox3.Text = dr["materia"].ToString();
                   string ruta = dr["direccion"].ToString();
                   pictureBox2.Image = Image.FromFile(ruta);


               }
             
           }
           catch(Exception ex)
           {
               MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Hand);
           }




       }