¿Alguien sabe de un ejemplo sobre cómo almacenar una imagen en una base de datos SQL Server CE?Almacenar una imagen en una base de datos SQL Server CE
¿Qué tipo de datos debe ser la columna? (Supongo que es binario.)
Uso Linq-To-Datasets. ¿Es posible usar eso para poner la imagen en la base de datos y sacarla luego?
Gracias por cualquier consejo.
Aquí es cómo lo hice:
MemoryStream stream = new MemoryStream();
myBitmapImage.Save(stream, ImageFormat.Png);
myInsertLinqToDataSetRow.IMAGE_COLUMN = stream.ToArray();
Para cargar de nuevo otra vez que hice esto:
MemoryStream stream = new MemoryStream(myLinqToDataSetRow.IMAGE_COLUMN);
myBitmapImage.SignatureImage = new Bitmap(stream);
me encontré con una página en MSDN que dijo que la columna de la Imagen tipo se va y que debe usar varbinary (MAX). Max no es compatible con SQL Server CE, así que lo hice varbinary (8000).
MÁS TARDE NOTA: mientras varbinary (max) no es compatible con SQL Server CE. Varbinary (8000) no es lo suficientemente grande para muchas imágenes. Terminé usando el tipo de imagen a pesar de que está previsto que esté en desuso. Una vez que ms ofrece una alternativa razonable en la plataforma móvil, consideraré cambiar.
idea razonable si estaba almacenando datos de referencia. Sin embargo, esto es para capturas de pantalla de la ventana actual. Los necesito en la base de datos para mantenerlos organizados. – Vaccano
+1: Realmente no me gusta hacer esto y el mayor problema (las copias múltiples de la imagen) ** puede resolverse simplemente ** creando una tabla Imágenes con una identificación y la imagen. ** Aunque con la futura depreciación del tipo de imagen y las limitaciones en el tamaño varbinary, creo que en realidad es la mejor opción **. Qué triste MS ... – Diego
Algo que descubrí en una de mis aplicaciones para detener la duplicación de la misma imagen es tener información de la imagen en una tabla separada y luego hacer referencia a todo en esa mesa.Tengo el hash de la imagen, el contenido binario y una identificación para ir con él. Una vez que la imagen está en la base de datos, en lugar de duplicar el contenido binario, simplemente agrego otra referencia a esa imagen. – JLopez