Salut,
Si j'ai bien compris tu as une image dans ton application et tu aimerai la sauvegarder dans une table.
Ta table doit être adaptée à la situation : avoir une colonne typée varbinary(max)
Enfin, y'a d'autres types de données qui fonctionnent, je te laisse juger du plus adapté a tes besoin.
Tu dois avoir une instance de System.Drawing.Bitmap (ou Image) contenant ta photo.
Tu créer un System.IO.MemoryStream dans lequel tu enregistres ton image et ca te permettra de transformer ca en tableau de byte.
Et le tableau de byte passera en paramètre de ta requête.
petit exemple :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
System.Drawing.Image img = System.Drawing.Image.FromFile("monimage.png"); // Chargement de ton image.
byte[] imgBytes = null;
using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
{
img.Save(ms, System.Drawing.Imaging.ImageFormat.Png); // On sauvegarde l'image dans un MemoryStream (permet de ne pas passer par le disque dur)
imgBytes = ms.ToArray(); // On obtient le contenu du MemoryStream sous forme de tableau d'octets
}
// On oublie pas les using
using (System.Data.SqlClient.SqlConnection cnx = new System.Data.SqlClient.SqlConnection("ta chaine de connexion."))
{
cnx.Open();
using (System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand("INSER INTO dbo.MesImages ( id, img) VALUES (@ID, @IMG)"))
{
// On ajoute les paramètres à la requete
cmd.Parameters.AddRange(new System.Data.SqlClient.SqlParameter[] {
new System.Data.SqlClient.SqlParameter("@ID", Guid.NewGuid()),
new System.Data.SqlClient.SqlParameter("@IMG", imgBytes) // On passe l'image
});
cmd.ExecuteNonQuery();
}
} |
A toi d'adapter.
Pour moi ta question n'a rien a voir avec le WPF (que je ne pratique pas du tout par ailleurs)
Partager