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
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.