HOP !!!!!! Modif !! Mais ça marche toujours pas ...
Apparemment, je n'utilisait pas la bonne méthode pour récupérer mon image!
D'après ce que j'ai trouvé, je dois utiliser un tableau de byte (
Byte[] bytImage = mstImage.GetBuffer();)Par contre j'ai le meme type d'erreur que lorsque j'oubli de renseigner une colonne,
soit qu'il y a un problème dans la requete INSERT TO...
Je n'ai que 2 colonne pourtant (N° et Image).
Des idées ???
code:
privatevoid btEnregistrIMG_Click(object sender, EventArgs e)
{
//on vérifie que tout les champs sont remplis
if (pbxImage.Image == null)
{
MessageBox.Show("Veuillez choisir une image au préalable");
}
else
{
// Tableau d'octets representant l'image au format jpeg
MemoryStream mstImage = newMemoryStream();
pbxImage.Image.Save(mstImage, System.Drawing.Imaging.ImageFormat.Jpeg);
Byte[] bytImage = mstImage.GetBuffer();
//déclaration du data adapter
OleDbDataAdapter Dta = newOleDbDataAdapter(this.SqlGrid, this.Conn);
//création d'une nouvelle ligne
this.DtrGrid = this.DtsGrid.Tables["TabDonneesContacts"].NewRow();
//Ajout de la ligne et remplissage des différents champs
this.DtrGrid["ID"] = this.DtsGrid.Tables["TabDonneesContacts"].Rows.Count + 1;
this.DtrGrid["Image"] = bytImage;
//ajout de la ligne à la table (affichage visuel)
this.DtsGrid.Tables["TabDonneesContacts"].Rows.Add(DtrGrid);
//on leve l'exception
try
{
//on met tout dans la base de donnée
this.CmdGrid = newOleDbCommandBuilder(Dta);
Dta.UpdateCommand = CmdGrid.GetUpdateCommand();
Dta.Update(DtsGrid, "TabDonneesContacts"); !!!!on plante ici !!!!
}
//on gere l'exception en cas d'enregistrement raté.
catch (DBConcurrencyException DBCEx)
{
MessageBox.Show("Impossible d'enregistrer la nouvelle image...");
}}