Serializar y trabajar con un documento en una base de datos

Una de las tareas que puede necesitar hacer cuando trabajar con documentos es almacenar y recuperar Document objetos a y desde una base de datos. Por ejemplo, esto sería necesario si estuviera implementando cualquier tipo de sistema de gestión de contenidos. Todas las versiones anteriores de los documentos deben almacenarse en el sistema de bases de datos. La capacidad de almacenar documentos en la base de datos también es extremadamente útil cuando su aplicación proporciona un servicio basado en la web.

Aspose.Words proporciona la capacidad de convertir un documento en una matriz de byte para trabajos posteriores con este documento en una base de datos.

Convertir un documento en Byte Array

Para almacenar un documento en una base de datos o para preparar un documento para la transmisión a través de la web, a menudo es necesario serializar el documento para obtener una matriz de byte.

Para serializar a Document objeto en Aspose.Words:

  1. Guárdalo a un MemoryStream usando el Save sobrecarga del método Document clase.
  2. Llama a la ToArray método, que devuelve una serie de bytes que representan el documento en forma byte.

Los pasos arriba entonces se pueden revertir para cargar los bytes de nuevo en un Document objeto.

El ejemplo a continuación muestra cómo serializar un Document objeto para obtener una matriz de byte, y luego cómo deserializar la matriz de byte para obtener un Document objeto de nuevo:

Almacenar, leer y eliminar un documento en una base de datos

Esta sección muestra cómo guardar un documento en una base de datos y luego cargarlo de nuevo en un Document objeto para trabajar con él. Para la simplicidad, el nombre de archivo es la clave utilizada para almacenar y recoger documentos de la base de datos. La base de datos contiene dos columnas. La primera columna “FileName” se almacena como una cuerda y se utiliza para identificar documentos. La segunda columna “FileContent” se almacena como BLOB objeto que almacena el objeto de documento en forma de byte.

El siguiente ejemplo de código muestra cómo establecer una conexión a una base de datos y ejecutar comandos:

El siguiente ejemplo de código muestra cómo guardar un documento en la base de datos, luego leer el mismo documento de nuevo, y finalmente eliminar el registro que contiene el documento de la base de datos:

Guardar un documento en una base de datos

Para guardar un documento en una base de datos convertir este documento a una serie de bytes, como se describe al comienzo de este artículo. Entonces, guarda esta matriz de byte en un campo de base de datos.

El siguiente ejemplo de código muestra cómo guardar un documento en la base de datos especificada:

Especifique comandoString, que es una expresión SQL que hace todo el trabajo:

  • Para guardar un documento en la base de datos, se utiliza el comando “INSERT INTO” y una tabla especificada junto con los valores de dos campos de registro: FileName y FileContent. Para evitar parámetros adicionales, el nombre de archivo se toma del Document objeto mismo. El FileContent valor de campo se asignan bytes del flujo de memoria, que contiene una representación binaria del documento almacenado.
  • La línea restante de código ejecuta el comando que almacena el Aspose.Words documento en la base de datos.

Recuperar un documento de una base de datos

Para recuperar un documento de la base de datos, seleccione el registro que contiene los datos del documento como un conjunto de bytes. Luego carga el array byte desde el registro en MemoryStream y crear un Document objeto que cargará el documento del MemoryStream.

El siguiente ejemplo de código muestra cómo recuperar y devolver un documento de la base de datos especificada utilizando el nombre de archivo como clave para buscar este documento:

Eliminar un documento de una base de datos

Para eliminar un documento de la base de datos, utilice el comando SQL apropiado sin ninguna manipulación en la base Document objeto.

El siguiente ejemplo de código muestra cómo eliminar un documento de la base de datos, utilizando el nombre del archivo para obtener el registro: