Qualcuno sa di un esempio su come memorizzare un'immagine in un database di SQL Server CE?Archiviare un'immagine in un database di SQL Server CE
Quale tipo di dati deve essere la colonna? (Sto indovinando il binario.)
Uso i set di dati Linq-To-Dataset. È possibile usarlo per inserire l'immagine nel database ed estrarla di nuovo più tardi?
Grazie per qualsiasi consiglio.
Ecco come ho fatto:
MemoryStream stream = new MemoryStream();
myBitmapImage.Save(stream, ImageFormat.Png);
myInsertLinqToDataSetRow.IMAGE_COLUMN = stream.ToArray();
Per caricare di nuovo fuori ancora una volta ho fatto questo:
MemoryStream stream = new MemoryStream(myLinqToDataSetRow.IMAGE_COLUMN);
myBitmapImage.SignatureImage = new Bitmap(stream);
ho trovato una pagina su MSDN che ha detto che la colonna Immagine il tipo sta andando via e si dovrebbe usare varbinary (MAX). Max non è supportato su SQL Server CE, quindi ho eseguito varbinary (8000).
LATER NOTA: anche se varbinary (max) non è supportato su SQL Server CE. Varbinary (8000) non è abbastanza grande per molte immagini. Ho finito per utilizzare il tipo di immagine anche se si prevede di essere deprecato. Una volta che ms offre un'alternativa resonable sulla piattaforma mobile, prenderò in considerazione il passaggio.
idea ragionevole se stavo memorizzando i dati di riferimento. Tuttavia, questo è per le schermate della finestra corrente. Ho bisogno di loro nel database per tenerli organizzati. – Vaccano
+1: Non mi piace molto farlo e il problema più grande (le copie multiple dell'immagine) ** può essere risolto semplicemente ** creando una tabella Immagini con un ID e l'immagine. ** Anche se con la futura deprecazione del tipo di immagine e le limitazioni sulla dimensione varbinary penso che sia in realtà l'opzione migliore **. Che tristezza MS .. – Diego
Qualcosa che ho scoperto in una delle mie applicazioni per fermare la duplicazione della stessa immagine è avere informazioni sull'immagine su una tabella separata e quindi riferire tutto a quella tabella.Ho l'hash dell'immagine, il contenuto binario e un ID per seguirlo. Una volta che l'immagine è nel database, invece di duplicare il contenuto binario, aggiungo semplicemente un altro riferimento a quell'immagine. – JLopez