A voir également:
- Tuto application VB.net pour remplir une BDD
- Application mobile - Guide
- Nommez une application d'appel vidéo ou de visioconférence - Guide
- Comment supprimer une application préinstallée sur android - Guide
- Ipad trop vieux pour application - Guide
- Désinstaller une application sur pc - Guide
2 réponses
Krysstof
Messages postés
1483
Date d'inscription
mercredi 18 février 2009
Statut
Membre
Dernière intervention
23 août 2010
294
16 juin 2010 à 12:46
16 juin 2010 à 12:46
tout dépend de ta base de données.
Pour stocker un ficher en base, il faut que ta base supporte les champs binaires (ou Binary Large OBject, BLOB)
pour stocker, le code est en c# mais la conversion en vb.net est facile :
tu crée un filestream et un tableau de byte
tu alimente le tableau de byte en lisant le contenu du fichier
ensuite pour la requete d'envoi a la base, tu créer une sqlCommand du genre
@image est un paramètre que tu alimente de la manière suivante
puis tu exécute la commande
pour la réécriture de la base vers un fichier
pour transformer du c# en VB, il faut juste enlever les ; a la fin des ligne et changer la déclaration des variable
"byte[] buffer" devient "Dim buffer as byte()" par exemple
Pour stocker un ficher en base, il faut que ta base supporte les champs binaires (ou Binary Large OBject, BLOB)
pour stocker, le code est en c# mais la conversion en vb.net est facile :
tu crée un filestream et un tableau de byte
tu alimente le tableau de byte en lisant le contenu du fichier
FileStream st = new FileStream(@"C:\filename.jpg", FileMode.Open); byte[] buffer = new byte[st.Length]; st.Read(buffer, 0, (int)st.Length); st.Close();
ensuite pour la requete d'envoi a la base, tu créer une sqlCommand du genre
SqlCommand cmd = new SqlCommand("UPDATE SomeTable SET image=@image WHERE ID = 1", conn);
@image est un paramètre que tu alimente de la manière suivante
cmd.Parameters.AddWithValue("@image", buffer);
puis tu exécute la commande
cmd.ExecuteNonQuery();
pour la réécriture de la base vers un fichier
SqlCommand command = new SqlCommand ("select PdfFile from Table", connection); byte[] buffer = (byte[]) command.ExecuteScalar (); connection.Close(); FileStream fs = new FileStream(@"C:\test.pdf", FileMode.Create); fs.Write(buffer, 0, buffer.Length); fs.Close();
pour transformer du c# en VB, il faut juste enlever les ; a la fin des ligne et changer la déclaration des variable
"byte[] buffer" devient "Dim buffer as byte()" par exemple
Merci beaucoup Krysstof pour cette réponse précise !
Ma base de données est SQL Server et j'utilise VB. J'avais mis Varbinary(max) pour le type de données pour les .pdf donc je pense que c'est bon d'après ce que j'ai lu dans ta réponse.
Comme c'est un peu compliqué pour moi, je vais prendre le temps d'étudier ta réponse et je reviendrai dire si je m'en suis sortie ou non !
Cordialement,
Alfred
Ma base de données est SQL Server et j'utilise VB. J'avais mis Varbinary(max) pour le type de données pour les .pdf donc je pense que c'est bon d'après ce que j'ai lu dans ta réponse.
Comme c'est un peu compliqué pour moi, je vais prendre le temps d'étudier ta réponse et je reviendrai dire si je m'en suis sortie ou non !
Cordialement,
Alfred