[C#] Odbc, fichier binaire

Odbc, fichier binaire [C#] - C#/.NET managed - Programmation

Marsh Posté le 07-01-2005 à 16:15:30    

Bonjour à tous
 
Voila je tente en C# avec ODBC de recupérer une image stockée dans ma base de donnée dans un champ BLOB (en binaire donc) et de l'afficher directement dans une pictureBox.
 
J'ai fait ça :
 

Code :
  1. public MemoryStream GetImage()
  2. {
  3. try
  4. {
  5.  int buffSize = 100;
  6.  //Retrieve BLOB from database into DataSet.
  7.  OdbcCommand commande = new OdbcCommand("SELECT image FROM telepilotes_tbl WHERE id_telepilote=9", myConnexion_);
  8.  //Exécution de la requete
  9.  OdbcDataReader resultat=commande.ExecuteReader();
  10.  // On teste s'il existe au moins un résultat
  11.  if (resultat.Read())
  12.  {
  13.   int startIndex = 0;
  14.   // Read the bytes into outbyte[] and retain the number of bytes returned.
  15.   MemoryStream stmBLOBData = new MemoryStream();
  16.   byte[] outbyte = new byte[buffSize]; 
  17.   long retval = resultat.GetBytes(0, startIndex, outbyte, 0, buffSize);
  18.   // Continue reading and writing while there are bytes beyond the size of the buffer.
  19.   while (retval == buffSize)
  20.   {
  21.    stmBLOBData.Write(outbyte,startIndex,buffSize);
  22.    stmBLOBData.Flush();
  23.    // Reposition the start index to the end of the last buffer and fill the buffer.
  24.    startIndex += buffSize;
  25.    retval = resultat.GetBytes(0, startIndex, outbyte, 0, buffSize);
  26.   }
  27.   stmBLOBData.Write(outbyte, 0, (int)retval - 1);
  28.   stmBLOBData.Flush();
  29.   return stmBLOBData;
  30.  }
  31. }
  32. catch(Exception ex)
  33. {
  34.  MessageBox.Show(ex.Message);
  35. }
  36. MessageBox.Show("NuLLLLLL !" );
  37. return null;
  38. }


 
pour ensuite l'utiliser comme ça :
pictureBox1.Image = Image.FromStream(GetImage());
 
mais ça ne fonctionne pas.
J'ai une erreur "Offset et length hors limite pour ce tableau ou bien le nombre d'élément est supérieur au nombre d'éléments de l'index à la fin de la collection source"
 
 :pt1cable:  
 
z'auriez une idée d'ou vient le pb ?
 
merci d'avance
 
fluminis

Reply

Marsh Posté le 07-01-2005 à 16:15:30   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed