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

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  lecture d'un champ BLOB

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

lecture d'un champ BLOB

n°654203
blitz
Posté le 25-02-2004 à 09:56:41  profilanswer
 

Bonjour,
 
J'aurai aimé recuperer en C# le contenu d'un champ BLOB dans une base de donnée advantage.
 
Le champ BLOB est une image au format BMP dans un de mes exemples et au format XML dans un autre.
 
J'ai essayé ce code:
 
FileStream fs; // Writes the BLOB to a file (*.bmp).
BinaryWriter bw; // Streams the BLOB to the FileStream object.
int bufferSize = 100; // Size of the BLOB buffer.
byte[] outbyte = new byte[bufferSize]; // The BLOB byte[] buffer to be filled by GetBytes.
long retval; // The bytes returned from GetBytes.
long startIndex = 0; // The starting position in the BLOB output.
string emp_id = ""; // The employee id to use in the file name.
 
// Open the connection and read data into the DataReader.
connection.Open();
AdsDataReader myReader = dataAdapter.SelectCommand.ExecuteReader(CommandBehavior.SequentialAccess);
 
while (myReader.Read())
{
// Get the employee id, which must occur before getting the employee.
emp_id = myReader.GetInt32(0).ToString();
 
// Create a file to hold the output.
fs = new FileStream("employee" + emp_id + ".bmp",
FileMode.OpenOrCreate, FileAccess.Write);
bw = new BinaryWriter(fs);
 
// Reset the starting byte for the new BLOB.
startIndex = 0;
 
// Read the bytes into outbyte[] and retain the number of bytes returned.
retval = myReader.GetBytes(1, startIndex, outbyte, 0, bufferSize);
 
// Continue reading and writing while there are bytes beyond the size of the buffer.
while (retval == bufferSize)
{
bw.Write(outbyte);
bw.Flush();
 
// Reposition the start index to the end of the last buffer and fill the buffer.
startIndex += bufferSize;
retval = myReader.GetBytes(1, startIndex, outbyte, 0, bufferSize);
}
 
// Write the remaining buffer.
bw.Write(outbyte, 0, (int)retval);
bw.Flush();
 
// Close the output file.
bw.Close();
fs.Close();
}
 
// Close the reader and the connection.
myReader.Close();
connection.Close();
 
}//fin du try
 
 
 
 
Quelqu'un aurai t'il une idée car la fonction ne marche pas !! la connection ce crée et la boucle est bonne mais le "emp_id = myReader.GetInt32(0).ToString();" ne charge rien du tout
 
:S

mood
Publicité
Posté le 25-02-2004 à 09:56:41  profilanswer
 

n°654204
blitz
Posté le 25-02-2004 à 09:58:34  profilanswer
 

PS : le probleme est le meme avec la ligne de chargement suivante : retval = myReader.GetBytes(1, startIndex, outbyte, 0, bufferSize);  
je pense donc que c'est la creation du reader qui se fait mal mais je ne sait pas du tout pourquoi !!


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

  lecture d'un champ BLOB

 

Sujets relatifs
[SQL] Distinct sur un champlecture bit par bit dans un fichier
lecture d'un fichier bmp en cDirect Sound : probleme de lecture
quel type de champ pr ces données???[C#] Comment faire un champ libellé en dégradé
erreur de lecture de cellule, je sais pas trop pourquoi :-/[VB] Problème avec la lecture d'un fichier
lecture/recherche dans un fichier exeLecture de fichier au format DVD
Plus de sujets relatifs à : lecture d'un champ BLOB


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)