База данных считается неотъемлемой частью большинства приложений. Будь то настольное, веб- или мобильное приложение, база данных играет жизненно важную роль в хранении данных, доступе к ним и управлении ими. Существует множество систем управления базами данных, которые позволяют вам создавать базы данных и управлять ими.
Однако возможен сценарий, когда вам нужен способ извлечения данных из файлов базы данных, т. е. файла .db, без установки системы управления базой данных или написания SQL-запросов. Как бы вы разобрали файл базы данных в таком случае и получили бы из него данные?
В этой статье я собираюсь продемонстрировать, как легко вы можете извлекать данные из таблиц в базе данных SQLite без написания SQL-запросов. Я собираюсь использовать API GroupDocs.Parser for .NET, который поддерживает извлечение данных из баз данных через [ADO.NET](https://en.wikipedia. org/wiki/ADO.NET).
Действия по извлечению данных из таблиц в базе данных SQLite (.db)
1. Создайте новый проект в Visual Studio.
2. Установите GroupDocs.Parser for .NET из NuGet.
3. Добавьте следующие пространства имен.
using System;
using System.Collections.Generic;
using System.IO;
using GroupDocs.Parser.Data;
using GroupDocs.Parser.Options;
4. Подготовьте строку подключения.
string connectionString = string.Format("Provider=System.Data.Sqlite;Data Source={0};Version=3;", "sqlite.db");
5. Загрузите файл базы данных в объект Парсер.
using (Parser parser = new Parser(connectionString, new LoadOptions(FileFormat.Database)))
{
// ваш код идет сюда
}
6. Получить список таблиц в базе данных с помощью метода Parser.GetToc.
// Получить список таблиц
IEnumerable<TocItem> toc = parser.GetToc();
7. Перебор таблиц и извлечение данных.
// Итерация по таблицам
foreach (TocItem i in toc)
{
// Распечатать имя таблицы
Console.WriteLine(i.Text);
// Извлечь содержимое таблицы в виде текста
using (TextReader reader = parser.GetText(i.PageIndex.Value))
{
Console.WriteLine(reader.ReadToEnd());
}
}
Полный код
string connectionString = string.Format("Provider=System.Data.Sqlite;Data Source={0};Version=3;", "sqlite.db");
// Создайте экземпляр класса Parser для извлечения таблиц из базы данных.
// Строка подключения передается в качестве первого параметра, а для параметра LoadOptions задан формат файла базы данных.
using (Parser parser = new Parser(connectionString, new LoadOptions(FileFormat.Database)))
{
// Получить список таблиц
IEnumerable<TocItem> toc = parser.GetToc();
// Итерация по таблицам
foreach (TocItem i in toc)
{
// Распечатать имя таблицы
Console.WriteLine(i.Text);
// Извлечь содержимое таблицы в виде текста
using (TextReader reader = parser.GetText(i.PageIndex.Value))
{
Console.WriteLine(reader.ReadToEnd());
}
}
}
Выход
Посетите документацию, чтобы узнать больше об API GroupDocs.Parser for .NET. Вы можете скачать или клонировать примеры исходного кода из репозитория GitHub. В случае возникновения каких-либо вопросов просто разместите их на форуме.