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 :
public MemoryStream GetImage()
{
try
{
int buffSize = 100;
//Retrieve BLOB from database into DataSet.
OdbcCommand commande = new OdbcCommand("SELECT image FROM telepilotes_tbl WHERE id_telepilote=9", myConnexion_);
//Exécution de la requete
OdbcDataReader resultat=commande.ExecuteReader();
// On teste s'il existe au moins un résultat
if (resultat.Read())
{
int startIndex = 0;
// Read the bytes into outbyte[] and retain the number of bytes returned.
MemoryStream stmBLOBData = new MemoryStream();
byte[] outbyte = new byte[buffSize];
long retval = resultat.GetBytes(0, startIndex, outbyte, 0, buffSize);
// Continue reading and writing while there are bytes beyond the size of the buffer.
while (retval == buffSize)
{
stmBLOBData.Write(outbyte,startIndex,buffSize);
stmBLOBData.Flush();
// Reposition the start index to the end of the last buffer and fill the buffer.
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"
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 :
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"
z'auriez une idée d'ou vient le pb ?
merci d'avance
fluminis