Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2934 connectés 

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  Stocker des images dans une base access

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Stocker des images dans une base access

n°1405001
didier1809
${citation_perso}
Posté le 11-07-2006 à 21:46:38  profilanswer
 

:hello:  
 
Je cherche à stocker des images dans une BDD Access, mais j'i une erreur de type :  
'Le champ est trop petit pour accepter la quantité de données que vous voulez ajouter. Essayez d'insérer ou de coller moins de données'
 
Voici le code source de mon programme :

Code :
  1. private void button1_Click(object sender, EventArgs e)
  2.        {
  3.            try
  4.            {
  5.                OpenFileDialog ofdImage = new OpenFileDialog();
  6.                ofdImage.Title = "Selectionner l'image à inserer";
  7.                ofdImage.CheckFileExists = true;
  8.                ofdImage.InitialDirectory = Application.StartupPath;
  9.                ofdImage.Filter = "Fichiers image (*.BMP;*.JPG;*.GIF)|*.BMP;*.JPG;*.GIF|All files (*.*)|*.*";
  10.                ofdImage.FilterIndex = 1;
  11.                ofdImage.RestoreDirectory = true;
  12.  
  13.                if (ofdImage.ShowDialog() == DialogResult.OK)
  14.                {
  15.                    // Affiche l'image bitmap
  16.                    pbxImage.Image = (Image)new Bitmap(ofdImage.FileName);                  
  17.                }
  18.            }
  19.            catch (Exception ex)
  20.            {
  21.                MessageBox.Show(string.Concat("Erreur: ", ex.Message));
  22.            }
  23.        }


 

Code :
  1. try
  2.            {
  3.            //create the command object and store the sql query
  4.            // Tableau d'octets representant l'image au format jpeg
  5.            MemoryStream mstImage = new MemoryStream();
  6.            pbxImage.Image.Save(mstImage, System.Drawing.Imaging.ImageFormat.Jpeg);
  7.            Byte[] bytImage = mstImage.GetBuffer();
  8.  
  9.  
  10.            aConnection.Open();
  11.  
  12.            OleDbCommand cmdTestAccessImage = new OleDbCommand("INSERT INTO personne([pseudo], [nom], [prenom], [photo], [date_naiss], [mail]) VALUES (?, ?, ?, ?, ?, ?)", aConnection);
  13.            
  14.  
  15. //C'est ici que je remplis le parametre
  16.                cmdTestAccessImage.Parameters.Add(new OleDbParameter("photo", OleDbType.VarBinary, bytImage.Length,
  17.                ParameterDirection.Input, false, 0, 0, null, DataRowVersion.Current, bytImage));
  18.  
  19.  
  20.            
  21.                cmdTestAccessImage.Parameters.Add(new OleDbParameter("pseudo", System.Data.OleDb.OleDbType.VarWChar, 50,
  22.                ParameterDirection.Input, false, 0, 0, null, DataRowVersion.Current, this.tab1txtboxPseudo.Text));
  23.            
  24.                cmdTestAccessImage.Parameters.Add(new OleDbParameter("nom", System.Data.OleDb.OleDbType.VarWChar, 50,
  25.                ParameterDirection.Input, false, 0, 0, null, DataRowVersion.Current, this.tab1txtBoxNom.Text));
  26.            
  27.                cmdTestAccessImage.Parameters.Add(new OleDbParameter("prenom", System.Data.OleDb.OleDbType.VarWChar, 50,
  28.                ParameterDirection.Input, false, 0, 0, null, DataRowVersion.Current, this.tab1txtboxPrenom.Text));
  29.            
  30.                cmdTestAccessImage.Parameters.Add(new OleDbParameter("date_naiss", System.Data.OleDb.OleDbType.DBTimeStamp, 50,
  31.                ParameterDirection.Input, false, 0, 0, null, DataRowVersion.Current, DateTime.Now.ToString()));
  32.            
  33.                cmdTestAccessImage.Parameters.Add(new OleDbParameter("mail", System.Data.OleDb.OleDbType.VarWChar, 50,
  34.                ParameterDirection.Input, false, 0, 0, null, DataRowVersion.Current, "" ));
  35.  
  36.            cmdTestAccessImage.ExecuteNonQuery();
  37.            aConnection.Close();


 
 
Le champ 'photo' de la BDD est défini comme suit :
'Objet OLE'
 
 
Une idée d'où cela peux provenir ?


Message édité par didier1809 le 11-07-2006 à 21:48:05

---------------
.
mood
Publicité
Posté le 11-07-2006 à 21:46:38  profilanswer
 

n°1405439
_Mose_
Lonesome coder
Posté le 12-07-2006 à 12:12:00  profilanswer
 

Peut-être que ton champs est trop petit pour accepter la quantité de données que tu veux y ajouter  :)
 
C'est quoi la taille max de ton champ ? Et la taille de ton image ? (bytImage.Length)

n°1405932
didier1809
${citation_perso}
Posté le 12-07-2006 à 22:12:31  profilanswer
 

DAns access, quand tu met 'champ ole', tu n'a pas de choix de taille ;)
 
Pour la taille de l'image, je regarderai demain :)


---------------
.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  Stocker des images dans une base access

 

Sujets relatifs
[ACCESS] récupérer une requete sous VB[résolu]récupération nom de dossier pour images
Access:extraire des données à partir de HTMLnettoyage de code vba access
Charger des images externes via load ?Superposer 2 images avec gestion de transparence ...
Problème avec le contenu d'un menu déroulant sous Access[J2ME] interaction base de données
[Access] Création de graphiqueImporter etat access vers .net
Plus de sujets relatifs à : Stocker des images dans une base access


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR