none
picturebox en tiempo de ejecución RRS feed

  • Pregunta

  • tengan buenas tardes:

    mi problema es el siguiente, debo realizar una especie de matriz de 4 filas y "n" columnas según la cantidad de fotografías de profesionales que se encuentren en una base de datos MySql y poner cada una en un picturebox que pueda ser seleccionada para elegir algún servicio asociado a el profesional seleccionado (la cantidad de fotografías no debería superar los 25 registros en la base de datos), y al ejecutarse el programa deberían cargarse inmediatamente con el evento load del formulario. pero no lo he conseguido hacer ya que no conozco mucho de este lenguaje, he estado investigando la documentación y siguiendo algunos ejemplo, pero estoy muy desorientado.

    no necesito que me hagan el código, solo le pido que me orienten y me den algunas ideas de como hacerlo o algún ejemplo parecido.

    desde ya muchas gracias. 

    estoy trabajando con C# windows form en visual studio 2012, base de datos MySql (la conexión esta funcionando), SO windows 8.

    viernes, 28 de junio de 2013 4:49

Respuestas

  • hola

    si el tema es el codigo para recuperar las imagenes utilizando ado.net podrias suar

    [WinForms] Edición Empleados

    si bien en el articulo se utiliza sql server, es practicamente identico ya qie mysql solo cambiaria el SqlConnection por MySqlConnection y asi el resto de los objetos, pero la tecnica es igual ya que en ambas se recupera el byte[] de la imagen

    esta imagen la cargarias en un picturebox de la misma forma que en el articulo

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    viernes, 28 de junio de 2013 6:12

Todas las respuestas

  • hola

    si el tema es el codigo para recuperar las imagenes utilizando ado.net podrias suar

    [WinForms] Edición Empleados

    si bien en el articulo se utiliza sql server, es practicamente identico ya qie mysql solo cambiaria el SqlConnection por MySqlConnection y asi el resto de los objetos, pero la tecnica es igual ya que en ambas se recupera el byte[] de la imagen

    esta imagen la cargarias en un picturebox de la misma forma que en el articulo

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    viernes, 28 de junio de 2013 6:12
  • muchas gracias por tu respuesta !!! es muy parecido a lo que necesito..... tratare de implementar algo con este ejemplo y te cuento como funciona!!! 
    viernes, 28 de junio de 2013 13:18
  • he tratado de hacer lo siguiente pero necesito ayuda, después de que se ejecuta la consulta, puedo leer los datos dentro de while(reader.read()) pero necesito pasar esos datos a una matriz de picturebox que se generara automáticamente al cargarse el formulario, no se si debería pasárselos aun arreglo o a la clase como lo estoy haciendo ahora y ya realmente no se como hacerlo, desde ya muchas gracias por su tiempo

    private void CargarListaEmpleados() { string connStr = "server=localhost;User Id=blufox_cbermedo;password=root;database=blufox_kids"; MySqlConnection conn = new MySqlConnection(connStr); try { conn.Open(); string query = @"SELECT id, nombres, apellidos, imagen FROM personal_profesional"; MySqlCommand cmd = new MySqlCommand(query, conn); MySqlDataReader reader = cmd.ExecuteReader();

    PictureBox[,] foto = new PictureBox[2, 2]; ProfesionalEntity profesional = new ProfesionalEntity(); while (reader.Read()) { profesional.id = Convert.ToInt32(reader["id"]); profesional.nombres = Convert.ToString(reader["nombres"]); profesional.apellidos = Convert.ToString(reader["apellidos"]); if (reader["imagen"] != DBNull.Value) { string ruta = Convert.ToString(reader["imagen"]); string ruta2 = (@"C:\xampp\htdocs\kid.loc\public\img\servicios\carpeta\" + ruta); profesional.imagen = ruta2; } } for (int j = 0; j < 2; j++) { for (int i = 0; i < 2; i++) { foto[i, j] = new PictureBox(); foto[i, j].Top = 155 * j; foto[i, j].Left = 155 * i; foto[i, j].Width = 150; foto[i, j].Height = 150; foto[i, j].SizeMode = PictureBoxSizeMode.StretchImage; foto[i, j].Image = Image.FromFile(profesional.imagen); this.Controls.Add(foto[i, j]); } } } catch (Exception ex) { MessageBox.Show("problema de conexion " + ex.ToString()); } finally { conn.Close(); } } private void Form1_Load(object sender, EventArgs e) { CargarListaEmpleados(); }


    lunes, 1 de julio de 2013 19:39