Il database è considerato parte integrante della maggior parte delle applicazioni. Che si tratti di un’applicazione desktop, web o mobile, il database svolge un ruolo fondamentale nell’archiviazione, nell’accesso e nella manipolazione dei dati. Esistono molti sistemi di gestione di database che consentono di creare e gestire database per te.

Tuttavia, potrebbe esserci uno scenario in cui è necessario un modo per estrarre i dati dai file di database, ad esempio il file .db, senza installare un sistema di gestione del database o scrivere le query SQL. In che modo analizzeresti il file di database in questo caso e ne otterresti i dati?

In questo articolo, dimostrerò con quanta facilità puoi estrarre i dati dalle tabelle in un database SQLite senza scrivere query SQL. Userò l’API GroupDocs.Parser for .NET che supporta l’estrazione di dati dai database tramite [ADO.NET](https://en.wikipedia. org/wiki/ADO.NET).

Passaggi per estrarre i dati dalle tabelle nel database SQLite (.db)

1. Crea un nuovo progetto in Visual Studio.

2. Installa GroupDocs.Parser for .NET da NuGet.

3. Aggiungi i seguenti spazi dei nomi.

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

4. Preparare la stringa di connessione.

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

5. Caricare il file di database nell’oggetto Parser.

using (Parser parser = new Parser(connectionString, new LoadOptions(FileFormat.Database)))
{
   // il tuo codice va qui
}

6. Ottieni l’elenco delle tabelle nel database utilizzando il metodo Parser.GetToc.

// Ottieni un elenco di tabelle
IEnumerable<TocItem> toc = parser.GetToc();

7. Scorri le tabelle ed estrai i dati.

// Iterare sulle tabelle
foreach (TocItem i in toc)
{
    // Stampa il nome della tabella
    Console.WriteLine(i.Text);
    // Estrarre il contenuto di una tabella come testo
    using (TextReader reader = parser.GetText(i.PageIndex.Value))
    {
          Console.WriteLine(reader.ReadToEnd());
    }
}

Codice completo

string connectionString = string.Format("Provider=System.Data.Sqlite;Data Source={0};Version=3;", "sqlite.db");
// Crea un'istanza della classe Parser per estrarre le tabelle dal database.
// La stringa di connessione viene passata come primo parametro e LoadOptions è impostato su Formato file database.
using (Parser parser = new Parser(connectionString, new LoadOptions(FileFormat.Database)))
{
	// Ottieni un elenco di tabelle
	IEnumerable<TocItem> toc = parser.GetToc();
	// Iterare sulle tabelle
	foreach (TocItem i in toc)
	{
		// Stampa il nome della tabella
		Console.WriteLine(i.Text);
		// Estrarre il contenuto di una tabella come testo
		using (TextReader reader = parser.GetText(i.PageIndex.Value))
		{
			Console.WriteLine(reader.ReadToEnd());
		}
	}
}

Produzione

Codice C# per estrarre dati dal database SQLite

Visita la documentazione per saperne di più sull’API GroupDocs.Parser for .NET. Puoi scaricare o clonare gli esempi di codice sorgente da repository GitHub. In caso di qualsiasi domanda, postala sul forum.