Meilleur auteur de réponses
visual c# Express 2010 et sqlce

Question
-
Salut a tous
Mon probleme est le suivant
Je suis ariver a enregistrer une images dans une base de données SQLCE
de cette facon
static public void SaveToContacts(PictureBox pb) { SqlCeConnection cn = new SqlCeConnection(ConnectString()); if (cn.State == ConnectionState.Closed) { cn.Open(); } SqlCeCommand cmd; sql = "insert into Contacts " + "(Nom, Prenom, Photo) " + "values (@nom, @prenom, @Photo)"; cmd = new SqlCeCommand(sql, cn); cmd.Parameters.AddWithValue("@nom", Nom); cmd.Parameters.AddWithValue("@prenom", Prenom); ImageFormat value = default(ImageFormat); byte[] imageBytes = null; value = ImageFormat.Jpeg; MemoryStream ms = new MemoryStream(); pb.Image.Save(ms, ImageFormat.Jpeg); imageBytes = ms.ToArray(); cmd.Parameters.AddWithValue("@Photo", imageBytes); cmd.ExecuteNonQuery(); cn.Close(); cn = null; }
mais pour la recuperer je trouve pas
kkun a une petite idee la desus
MERCI!
Daniel
- Modifié DanielMorais mercredi 27 juin 2012 01:11
Réponses
-
Bonjour Gilles
Oui j'ai essayer ca mais non, pas moyen mais j'ai trouver par hazar ce bout de code qui fait la job.
byte[] data = (byte[])this.dgvContacts.SelectedRows[0].Cells["Photo"].Value;
MemoryStream ms = new MemoryStream(data);
Helper.Photo = Image.FromStream(ms);
Le Helper est une class et photo est declarer dans la class
Merci
Daniel
- Marqué comme réponse Gilles TOURREAUModerator jeudi 19 juillet 2012 22:59
-
Bonjour,
Préférez dans ce cas la méthode suivante :
TypeDescriptor.GetConverter(typeof(Image)).ConvertFrom(dgvContacts.SelectedRows[0].Cells["Image"].Value);
Cordialement
Gilles TOURREAU - MVP C#
Architecte logiciel/Consultant/Formateur Freelance
Blog : http://gilles.tourreau.fr
- MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
- MCITP : SQL Server 2008 Developper
- MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0- Proposé comme réponse Gilles TOURREAUModerator vendredi 29 juin 2012 07:27
- Marqué comme réponse DanielMorais vendredi 29 juin 2012 12:38
Toutes les réponses
-
Salut a tous
Mon probleme est le suivant
Je suis ariver a enregistrer une images dans une base de données SQLCE
de cette facon
static public void SaveToContacts(PictureBox pb) { SqlCeConnection cn = new SqlCeConnection(ConnectString()); if (cn.State == ConnectionState.Closed) { cn.Open(); } SqlCeCommand cmd; sql = "insert into Contacts " + "(Nom, Prenom, Photo) " + "values (@nom, @prenom, @Photo)"; cmd = new SqlCeCommand(sql, cn); cmd.Parameters.AddWithValue("@nom", Nom); cmd.Parameters.AddWithValue("@prenom", Prenom); ImageFormat value = default(ImageFormat); byte[] imageBytes = null; value = ImageFormat.Jpeg; MemoryStream ms = new MemoryStream(); pb.Image.Save(ms, ImageFormat.Jpeg); imageBytes = ms.ToArray(); cmd.Parameters.AddWithValue("@Photo", imageBytes); cmd.ExecuteNonQuery(); cn.Close(); cn = null; }
mais pour la recuperer je trouve pas
kkun a une petite idee la desus
MERCI!
Daniel
en faite je la recupere de cette facon
private void LoadData() { using (SqlCeConnection cn = new SqlCeConnection(M.ConnectString())) { cn.Open(); SqlCeDataAdapter dta; DataSet dts; dts = new DataSet(); String sql = "Select * From Contacts order by Nom ASC"; dta = new SqlCeDataAdapter(sql, cn); dta.Fill(dts, "Contacts"); dgvContacts.DataSource = dts.Tables["Contacts"]; cn.Close(); } }
mais je trouve pas comment placer la photo de la ligne selectionner dans la pictureBox de mon programme
j'y arrive pour les donnée text mais pour les donnée images La????????????.
je m'explique la dessus
lblID.Text = dgvContacts.SelectedRows[0].Cells["ID"].Value.ToString();
t1.Text = dgvContacts.SelectedRows[0].Cells["Nom"].Value.ToString();
t2.Text = dgvContacts.SelectedRows[0].Cells["Prenom"].Value.ToString();
picturebox2.Text= "???????????????????????????????????????????????????????????????";Voila je fait comment pour la photo
Merci
Daniel
- Modifié DanielMorais mercredi 27 juin 2012 01:33
-
Bonjour,
Avez-vous essayé :
picturebox.Image = dgvContacts.SelectedRows[0].Cells["Image"].Value;
Cordialement
Gilles TOURREAU - MVP C#
Architecte logiciel/Consultant/Formateur Freelance
Blog : http://gilles.tourreau.fr
- MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
- MCITP : SQL Server 2008 Developper
- MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0- Marqué comme réponse DanielMorais jeudi 28 juin 2012 10:39
- Non marqué comme réponse Gilles TOURREAUModerator jeudi 19 juillet 2012 22:59
-
Bonjour Gilles
Oui j'ai essayer ca mais non, pas moyen mais j'ai trouver par hazar ce bout de code qui fait la job.
byte[] data = (byte[])this.dgvContacts.SelectedRows[0].Cells["Photo"].Value;
MemoryStream ms = new MemoryStream(data);
Helper.Photo = Image.FromStream(ms);
Le Helper est une class et photo est declarer dans la class
Merci
Daniel
- Marqué comme réponse Gilles TOURREAUModerator jeudi 19 juillet 2012 22:59
-
Bonjour demarre une transaction
SqlTransaction trans:
trans = cn.BeginTransaction():
cmd.Transaction = trans;
Ta requete
avant cn.Close();
Faire trans.save(); ou trans.comit();
Tout ira pour le mieux
Merci
- Marqué comme réponse DanielMorais vendredi 29 juin 2012 12:39
- Non marqué comme réponse Gilles TOURREAUModerator jeudi 19 juillet 2012 22:58
-
La premiere solution l'image est dans la BD tu peux l'appeler
picturebox.Image = dgvContacts.SelectedRows[0].Cells["Image"].Value;
Ou dans ta BD met le chemin de l'image comme string et utilise le HTML, ASP ou ce que tu veux avec :
imagesource = ".........."
C'est plus simple
- Marqué comme réponse DanielMorais vendredi 29 juin 2012 12:39
- Non marqué comme réponse Gilles TOURREAUModerator jeudi 19 juillet 2012 22:59
-
Bonjour,
Préférez dans ce cas la méthode suivante :
TypeDescriptor.GetConverter(typeof(Image)).ConvertFrom(dgvContacts.SelectedRows[0].Cells["Image"].Value);
Cordialement
Gilles TOURREAU - MVP C#
Architecte logiciel/Consultant/Formateur Freelance
Blog : http://gilles.tourreau.fr
- MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
- MCITP : SQL Server 2008 Developper
- MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0- Proposé comme réponse Gilles TOURREAUModerator vendredi 29 juin 2012 07:27
- Marqué comme réponse DanielMorais vendredi 29 juin 2012 12:38