Baza danych jest uważana za integralną część większości aplikacji. Niezależnie od tego, czy jest to aplikacja komputerowa, internetowa czy mobilna, baza danych odgrywa istotną rolę w przechowywaniu danych, uzyskiwaniu do nich dostępu i manipulowaniu nimi. Istnieje wiele systemów zarządzania bazami danych, które umożliwiają tworzenie baz danych i zarządzanie nimi.
Może się jednak zdarzyć sytuacja, w której potrzebujesz sposobu na wyodrębnienie danych z plików bazy danych, np. pliku .db, bez instalowania systemu zarządzania bazą danych lub pisania zapytań SQL. Jak w takim przypadku przeanalizować plik bazy danych i uzyskać z niego dane?
W tym artykule pokażę, jak łatwo można wyodrębnić dane z tabel w bazie danych SQLite bez pisania zapytań SQL. Zamierzam użyć API GroupDocs.Parser for .NET, które wspiera wydobywanie danych z baz danych przez ADO.NET.
Kroki, aby wyodrębnić dane z tabel w bazie danych SQLite (.db)
-
Utwórz nowy projekt w Visual Studio.
-
Zainstaluj GroupDocs.Parser for .NET z NuGet.
-
Dodaj następujące przestrzenie nazw.
using System;
using System.Collections.Generic;
using System.IO;
using GroupDocs.Parser.Data;
using GroupDocs.Parser.Options;
- Przygotuj parametry połączenia.
string connectionString = string.Format("Provider=System.Data.Sqlite;Data Source={0};Version=3;", "sqlite.db");
- Załaduj plik bazy danych do obiektu Parser.
using (Parser parser = new Parser(connectionString, new LoadOptions(FileFormat.Database)))
{
// twój kod idzie tutaj
}
- Pobierz listę tabel w bazie danych metodą Parser.GetToc.
// Pobierz listę tabel
IEnumerable<TocItem> toc = parser.GetToc();
- Przejrzyj tabele i wyodrębnij dane.
// Iteruj po tabelach
foreach (TocItem i in toc)
{
// Wydrukuj nazwę tabeli
Console.WriteLine(i.Text);
// Wyodrębnij zawartość tabeli jako tekst
using (TextReader reader = parser.GetText(i.PageIndex.Value))
{
Console.WriteLine(reader.ReadToEnd());
}
}
Kompletny kod
string connectionString = string.Format("Provider=System.Data.Sqlite;Data Source={0};Version=3;", "sqlite.db");
// Utwórz instancję klasy Parser, aby wyodrębnić tabele z bazy danych.
// Ciąg połączenia jest przekazywany jako pierwszy parametr, a opcja LoadOptions jest ustawiona na format pliku bazy danych.
using (Parser parser = new Parser(connectionString, new LoadOptions(FileFormat.Database)))
{
// Pobierz listę tabel
IEnumerable<TocItem> toc = parser.GetToc();
// Iteruj po tabelach
foreach (TocItem i in toc)
{
// Wydrukuj nazwę tabeli
Console.WriteLine(i.Text);
// Wyodrębnij zawartość tabeli jako tekst
using (TextReader reader = parser.GetText(i.PageIndex.Value))
{
Console.WriteLine(reader.ReadToEnd());
}
}
}
Wyjście
Odwiedź dokumentację, aby dowiedzieć się więcej o GroupDocs.Parser for .NET API. Możesz pobrać lub sklonować przykłady kodu źródłowego z repozytorium GitHub. W przypadku jakichkolwiek pytań po prostu opublikuj je na forum.