2009-11-24 4 views
1

Je voudrais stocker les données dans le champ MySQL BLOB. J'utilise le code suivant:Pourquoi mon champ BLOB est toujours 13B - ce que je fais mal?

int length = (int)fs.Length; 
         buffer = new byte[length]; 
         int count; 
         int sum = 0; 
         while ((count = fs.Read(buffer, sum, length - sum)) > 0) 
          sum += count; 

         prikaz.CommandText = "INSERT INTO attachments (ReferenceID,Filename,File) VALUES ('" + referenceID + "','test','" + buffer + "')"; 
         prikaz.ExecuteNonQuery(); 

Mais dans la base de données, le champ BLOB a toujours 13B. Pourriez-vous s'il vous plaît des conseils? Merci!

+0

Il manque sth ... – guerda

Répondre

1

Vous convertissez le tableau d'octets en chaîne à l'aide de la concaténation de chaîne. Cela ne vous donnera pas les données que vous voulez. Les données dans votre champ blob seront les mêmes pour chaque ligne: la chaîne "System.Byte []" en ASCII, je suppose.

Toujours utilisez une commande paramétrée pour ce genre de chose, afin de ne pas avoir à vous soucier des conversions et des échappements.