Récupérer une image de Sql server dans un ListView
msi19
Messages postés5Date d'inscriptionvendredi 8 novembre 2013StatutMembreDernière intervention11 décembre 2013
-
11 déc. 2013 à 15:11
taibelamrani
Messages postés3Date d'inscriptionvendredi 24 janvier 2014StatutMembreDernière intervention 7 février 2014
-
28 janv. 2014 à 16:38
Bonjour,
Bonjour,je suis débutant en wpf et je suis sur un petit projet qui me pose énormément de problème.Le but est de d'enregistrer le nom(varchar) ,l'âge(int),l'image((varbinary) du fruit d'un arbre dans une base de données Sql Server Pour l'enregistrement j'ai réussi à le faire mais le problème se trouve au niveau dans la récupération des données dans un ListView. Mise à part les autres données seule l'image ne s'affiche pas dans la ListView.
Mon programme se présente ainsi :
english:
Hello, I am a beginner in wpf and I'm on a project that asks me a lot of problem.The goal is to register the name (varchar), age (int), image ((varbinary) fruit a tree in a database Sql Server data to the recording I managed to do it but the problem lies in the recovery of data in a ListView. aside from other data only image s do not appear in the ListView.
public class Arbre
{
public int ID { get; set; }
public string Nom { get; set; }
public int Age { get; set; }
public BitmapImage image { get; set; }
public string Desc { get; set; }
public string Comes { get; set; }
}
CODE BEHIND
public partial class TestWindow1 : Window
{
OpenFileDialog fd = new OpenFileDialog();
List<Arbre> arbre = new List<Arbre>();
Convertisseur cnt = new Convertisseur();
public TestWindow1()
{
InitializeComponent();
LordData();
}
//recuperation des données
void LordData()
{
try
{
using (SqlConnection cnx = new SqlConnection(Properties.Settings.Default.ChaineDeConnxion))
{
cnx.Open();
byte[] im = null;
ListViewItem list = new ListViewItem();
using (SqlCommand cmd = new SqlCommand("select *from Arbres", cnx))
{
SqlDataReader rd = cmd.ExecuteReader();
while (rd.Read())
{
arbre.Add(new Arbre() { ID = Convert.ToInt32(rd[0]), Nom = rd[1].ToString(), Age = Convert.ToInt32(rd[2]), image =new BitmapImage(new Uri( Convert.ToString(rd[3]))), Desc = rd[4].ToString(), Comes = rd[5].ToString() });
}
//remplissage de ma ListView
listDonne.ItemsSource = arbre;
rd.Close();
}
taibelamrani
Messages postés3Date d'inscriptionvendredi 24 janvier 2014StatutMembreDernière intervention 7 février 2014 28 janv. 2014 à 16:38
Salut ,
tu pourra tester ça :
//recuperation des données
void LordData()
{
try
{
using (SqlConnection cnx = new SqlConnection(Properties.Settings.Default.ChaineDeConnxion))
{
cnx.Open();
using (SqlCommand cmd = new SqlCommand("select *from Arbres", cnx))
{
SqlDataReader rd = cmd.ExecuteReader();
while (rd.Read())
{
byte[] im = (byte[])(rd[3]);
var memoFichier = new MemoryStream(im);
var bitmapImg = new BitmapImage();
bitmapImg.BeginInit();
bitmapImg.StreamSource = memoFichier;
bitmapImg.EndInit();
arbre.Add(new Arbre() { ID = Convert.ToInt32(rd[0]), Nom = rd[1].ToString(), Age = Convert.ToInt32(rd[2]), image =bitmapImg, Desc = rd[4].ToString(), Comes = rd[5].ToString() });