• Lunes 18 de Noviembre de 2024, 03:30

Autor Tema:  imageList y bd access  (Leído 2755 veces)

marito4444

  • Nuevo Miembro
  • *
  • Mensajes: 8
    • Ver Perfil
imageList y bd access
« en: Jueves 10 de Marzo de 2011, 02:38 »
0
Hola que tal queria pedirles su ayuda para que me muestren como asignar una consulta de base de datos de imagenes a un ImageList y asi se lo puedo asignar a un listView o listBox, comento que lo unico que
necesito es mostrar todas las imagenes almacenas en la bd access, o si tienen alguna idea mejor, lo tengo
guardado como Ole, les comento que soy principiante en
C# y les agradeceria mucho su ayuda.

de antemano me despido, no sin antes enviarles un cordial saludo.

Gracias

gabio2

  • Miembro MUY activo
  • ***
  • Mensajes: 402
  • Nacionalidad: mx
    • Ver Perfil
Re: imageList y bd access
« Respuesta #1 en: Jueves 10 de Marzo de 2011, 02:48 »
0
En tu base de datos tienes tus imágenes?.. es decir.. en tu base de datos tienes los bytes de tus imágenes?.... si es así.. necesitas llamar esos bytes, luego transformarlos en imágenes y luego meterlos en un ImageList, pero esa programación es un poco más avanzada.. y leo que dices ser principiante no?.. seria de mucha ayuda que expecifiques TODO.. y también que tengas el código como tú lo estás haciendo.. o almenos que describas como crees resolver tu problema.. por que si lo que quieres es que escribamos todo el código por tí.. uuyyy.. si la veo un poco dificil.. especifica tus dudas.. y que sean.. sobre algo en específico. como "como puedo meter imagenes a mi ImageList"...  o algo así.. pero no escribir todo un código de conexión a la base de datos y luego.. hacer tu sentencia y luego ............ si me doy a entender?.. espero que sí.. un saludo marito4444 :)
@gabio87

marito4444

  • Nuevo Miembro
  • *
  • Mensajes: 8
    • Ver Perfil
Re: imageList y bd access
« Respuesta #2 en: Jueves 10 de Marzo de 2011, 03:28 »
0
Antes que nada gracias por responder muy rapido, y si, tampoco estoy pidiendo que me hagan todo mi programa, pero creo que me explique mal, lo unico que me necesito y no se si sea mucha la peticion. es la manera de asignar las imagenes a un imageList, claro que estas provienen de una base de datos que estan almacenadas en la base(es decir tengo un campo ole donde guardo los bytes de cada imagen)

ahorita lo unico que se es asignar una imagen a un picturebox, mediante este codigo que busq en la red

*****************aqui recupero los bytes que tengo almacenado y se lo asigno a un pictureBox, pero esto es de una sola imagen
MemoryStream ms = new MemoryStream();
                ms.Write(img, 0, img.GetUpperBound(0) + 1);
                pictureBox1.Image = System.Drawing.Image.FromStream(ms);
                ms.Close();
                if (pictureBox1.Image.Height > pictureBox1.Height || pictureBox1.Image.Width > pictureBox1.Width)
                    pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
                else
                    pictureBox1.SizeMode = PictureBoxSizeMode.CenterImage;
                return true;

pero mi duda es como hacer lo mismo pero para recuperar todas las imagenes o muchas imagenes, para asignarlas no aun pictureBox sino que a un imageList y asignarlas a un listBox o un listView, o como sea mas conveniente. pero mi idea es listar todas las imagenes recuperadas de la bd access.

de antemano me despido no sin antes enviarte un cordial saludo. muchas gracias

kolroff o_O)

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: imageList y bd access
« Respuesta #3 en: Jueves 10 de Marzo de 2011, 11:50 »
0
Buenos días, voy a intentar guiarte un poco en lo que deberías hacer, escribirte el código completo sería una locura, pero creo que esto podrá ayudarte

Lo primero definirte el acceso a la BD, para ello dentro de la capa de persistencia podrías crearte una clase "AccesoBD" por ejemplo:
Código: C#
  1.     
  2.  
  3. class AccesoBD
  4.     {
  5.         //Métod que abre la conexión y devuelve un objeto OleDbConnection
  6.         private static OleDbConnection conectar()
  7.         {
  8.             OleDbConnection cnn = new System.Data.OleDb.OleDbConnection();
  9.             //Si usas Access inferior a 2007
  10.             //string cadenaConexion = @"PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" + "/*---AQUI LA RUTA+EL NOMBRE DE TU BD---*/.mdb";
  11.  
  12.             //Si usas Access 2007 o superior
  13.             string cadenaConexion = @"PROVIDER=Microsoft.ACE.OLEDB.12.0;Data Source=" + "/*---AQUI LA RUTA+EL NOMBRE DE TU BD---*/.accdb";
  14.             cnn.ConnectionString = cadenaConexion;
  15.             cnn.Open();
  16.             return cnn;
  17.         }
  18.       
  19.       //Método que recupera las imágenes de la BD y las almacena en un imageList
  20.         public imageList rellenaImageList()
  21.         {  
  22.             //Definimos el imageList que vamos a llenar de imágenes
  23.             ImageList listaImágenes = new imageList();
  24.             //Aqui debes escribir tu sentencia SQL según tengas la BD creada
  25.             String strSQL = "SELECT campoImagen FROM TablaImagenes";
  26.  
  27.             OleDbConnection cnn = conectar();
  28.             OleDbCommand sentencia = new OleDbCommand(strSQL, cnn);
  29.             OleDbDataReader objReader = sentencia.ExecuteReader();
  30.  
  31.             while (objReader.Read())
  32.             {  
  33.                 MemoryStream ms=new MemoryStream();
  34.                 //recupero el array de bytes que forman la imagen
  35.                 byte[] imgByte=(byte[])(objReader[0]);
  36.                 ms.Write(imgByte, 0, imgByte.GetUpperBound(0)+1);
  37.  
  38.                 //Añado al imageList la imagen recuperada y convertida
  39.                 listaImagenes.Images.Add(System.Drawing.Image.FromStream(ms)
  40.                 ms.Close();                                                
  41.  
  42.             }
  43.             objReader.Close();
  44.             cnn.Close();
  45.  
  46.             //Devuelvo el imageList con las imágenes almacenadas
  47.             return listaImagenes;
  48.         }
  49.  
  50.  
  51.  
  52.  

Espero que te sirva de ayuda, es posible que tenga errores ya que no lo he probado.
busca información sobre las clases ImageList y MemoryStream para modificar los valores de las imágenes almacenadas en el imageList (tamaño, color...)

Un saludo,
Víctor.

marito4444

  • Nuevo Miembro
  • *
  • Mensajes: 8
    • Ver Perfil
Re: imageList y bd access
« Respuesta #4 en: Jueves 10 de Marzo de 2011, 12:05 »
0
Hola que tal muchas gracias por ayudarme, voy a probarlo ya si corre es lo de menos, lo de la conexion y lo demas ya lo tengo, me ayudaste demasiado con el while.
he de imaginarme que con el while me recorrera todas las imagenes y me las asignara al imageList.

muchisimas gracias.
saludos

marito4444

  • Nuevo Miembro
  • *
  • Mensajes: 8
    • Ver Perfil
Re: imageList y bd access
« Respuesta #5 en: Lunes 4 de Julio de 2011, 19:11 »
0
cerrar tema porfavor. Gracias