La base de datos se considera una parte integral de la mayoría de las aplicaciones. Ya sea una aplicación de escritorio, web o móvil, la base de datos juega un papel vital en el almacenamiento, el acceso y la manipulación de los datos. Hay muchos sistemas de administración de bases de datos que permiten crear y administrar bases de datos por usted.

Sin embargo, podría haber un escenario en el que necesite una forma de extraer datos de los archivos de la base de datos, es decir, el archivo .db, sin instalar un sistema de gestión de bases de datos ni escribir las consultas SQL. ¿Cómo analizaría el archivo de la base de datos en tal caso y obtendría los datos de él?

En este artículo, voy a demostrar con qué facilidad puede extraer los datos de las tablas en una base de datos SQLite sin escribir consultas SQL. Voy a utilizar la API GroupDocs.Parser para .NET que admite la extracción de datos de bases de datos a través de [ADO.NET](https://en.wikipedia. org/wiki/ADO.NET).

Pasos para extraer datos de tablas en la base de datos SQLite (.db)

1. Cree un nuevo proyecto en Visual Studio.

2. Instale GroupDocs.Parser para .NET desde NuGet.

3. Agregue los siguientes espacios de nombres.

using System;
using System.Collections.Generic;
using System.IO;
using GroupDocs.Parser.Data;
using GroupDocs.Parser.Options;

4. Prepare la cadena de conexión.

string connectionString = string.Format("Provider=System.Data.Sqlite;Data Source={0};Version=3;", "sqlite.db");

5. Cargue el archivo de la base de datos en el objeto Parser.

using (Parser parser = new Parser(connectionString, new LoadOptions(FileFormat.Database)))
{
   // tu codigo va aqui
}

6. Obtenga una lista de las tablas en la base de datos usando el método Parser.GetToc.

// Obtener una lista de tablas
IEnumerable<TocItem> toc = parser.GetToc();

7. Iterar sobre las tablas y extraer datos.

// Iterar sobre tablas
foreach (TocItem i in toc)
{
    // Imprimir el nombre de la tabla
    Console.WriteLine(i.Text);
    // Extraer el contenido de una tabla como texto
    using (TextReader reader = parser.GetText(i.PageIndex.Value))
    {
          Console.WriteLine(reader.ReadToEnd());
    }
}

Código completo

string connectionString = string.Format("Provider=System.Data.Sqlite;Data Source={0};Version=3;", "sqlite.db");
// Cree una instancia de la clase Parser para extraer tablas de la base de datos.
// La cadena de conexión se pasa como primer parámetro y LoadOptions se establece en formato de archivo de base de datos.
using (Parser parser = new Parser(connectionString, new LoadOptions(FileFormat.Database)))
{
	// Obtener una lista de tablas
	IEnumerable<TocItem> toc = parser.GetToc();
	// Iterar sobre tablas
	foreach (TocItem i in toc)
	{
		// Imprimir el nombre de la tabla
		Console.WriteLine(i.Text);
		// Extraer el contenido de una tabla como texto
		using (TextReader reader = parser.GetText(i.PageIndex.Value))
		{
			Console.WriteLine(reader.ReadToEnd());
		}
	}
}

Producción

Código C# para extraer datos de la base de datos SQLite

Visite la documentación para explorar más sobre la API de GroupDocs.Parser para .NET. Puede descargar o clonar los ejemplos de código fuente del repositorio de GitHub. En caso de cualquier consulta, simplemente publíquela en el foro.