Sérialiser et travailler avec un Document dans une base de données
L’une des tâches que vous devrez peut-être effectuer lorsque vous travaillez avec des documents consiste à stocker et à récupérer Document objets vers et depuis une base de données. Par exemple, cela serait nécessaire si vous implémentiez n’importe quel type de système de gestion de contenu. Toutes les versions précédentes des documents doivent être stockées dans le système de base de données. La possibilité de stocker des documents dans la base de données est également extrêmement utile lorsque votre application fournit un service Web.
Aspose.Words permet de convertir un document en un tableau d’octets pour un travail ultérieur avec ce document dans une base de données.
Convertir un Document en tableau d’octets
Pour stocker un document dans une base de données ou pour préparer un document en vue de sa transmission sur le Web, il est souvent nécessaire de sérialiser le document pour obtenir un tableau d’octets.
Pour sérialiser un objet Document dans Aspose.Words:
- Enregistrez-le dans un MemoryStream en utilisant la surcharge de méthode Save de la classe Document.
- Appelez la méthode ToArray, qui renvoie un tableau d’octets représentant le document sous forme d’octets.
Les étapes ci-dessus peuvent ensuite être inversées pour charger à nouveau les octets dans un objet Document.
L’exemple ci-dessous montre comment sérialiser un objet Document pour obtenir un tableau d’octets, puis comment désérialiser le tableau d’octets pour obtenir à nouveau un objet Document:
Stocker, Lire et Supprimer un Document dans une base de données
Cette section montre comment enregistrer un document dans une base de données, puis le charger à nouveau dans un objet Document
pour l’utiliser. Pour simplifier, le nom de fichier est la clé utilisée pour stocker et extraire des documents de la base de données. La base de données contient deux colonnes. La première colonne “FileName " est stockée sous forme de chaîne et est utilisée pour identifier les documents. La deuxième colonne “FileContent " est stockée en tant qu’objet BLOB
qui stocke l’objet document sous forme d’octet.
L’exemple de code suivant montre comment configurer une connexion à une base de données et exécuter des commandes:
L’exemple de code suivant montre comment enregistrer un document dans la base de données, puis relire le même document et enfin supprimer l’enregistrement contenant le document de la base de données:
Enregistrer un document dans une base de données
Pour enregistrer un document dans une base de données, convertissez ce document en un tableau d’octets, comme décrit au début de cet article. Ensuite, enregistrez ce tableau d’octets dans un champ de base de données.
L’exemple de code suivant montre comment enregistrer un document dans la base de données spécifiée:
Spécifiez commandString, qui est une expression SQL qui fait tout le travail:
- Pour enregistrer un document dans la base de données, la commande “INSERT INTO” est utilisée et une table est spécifiée avec les valeurs de deux champs d’enregistrement – FileName et FileContent. Pour éviter des paramètres supplémentaires, le nom de fichier est tiré de l’objet Document lui-même. La valeur du champ
FileContent
se voit attribuer des octets du flux mémoire, qui contient une représentation binaire du document stocké. - La ligne de code restante exécute la commande qui stocke le document Aspose.Words dans la base de données.
Récupérer un Document à partir d’une base de données
Pour extraire un document de la base de données, sélectionnez l’enregistrement qui contient les données du document sous la forme d’un tableau d’octets. Chargez ensuite le tableau d’octets de l’enregistrement dans MemoryStream et créez un objet Document qui chargera le document à partir du MemoryStream.
L’exemple de code suivant montre comment récupérer et renvoyer un document à partir de la base de données spécifiée en utilisant le nom de fichier comme clé pour récupérer ce document:
Supprimer un document d’une base de données
Pour supprimer un document de la base de données, utilisez la commande SQL appropriée sans aucune manipulation sur l’objet Document.
L’exemple de code suivant montre comment supprimer un document de la base de données, en utilisant le nom de fichier pour récupérer l’enregistrement: