База данных считается неотъемлемой частью большинства приложений. Будь то настольное, веб- или мобильное приложение, база данных играет жизненно важную роль в хранении данных, доступе к ним и управлении ими. Существует множество систем управления базами данных, которые позволяют вам создавать базы данных и управлять ими.

Однако возможен сценарий, когда вам нужен способ извлечения данных из файлов базы данных, т. е. файла .db, без установки системы управления базой данных или написания SQL-запросов. Как бы вы разобрали файл базы данных в таком случае и получили бы из него данные?

В этой статье я собираюсь продемонстрировать, как легко вы можете извлекать данные из таблиц в базе данных SQLite без написания SQL-запросов. Я собираюсь использовать API GroupDocs.Parser для .NET, который поддерживает извлечение данных из баз данных через [ADO.NET](https://en.wikipedia. org/wiki/ADO.NET).

Действия по извлечению данных из таблиц в базе данных SQLite (.db)

1. Создайте новый проект в Visual Studio.

2. Установите GroupDocs.Parser для .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());
		}
	}
}

Выход

Код С# для извлечения данных из базы данных SQLite

Посетите документацию, чтобы узнать больше об API GroupDocs.Parser для .NET. Вы можете скачать или клонировать примеры исходного кода из репозитория GitHub. В случае возникновения каких-либо вопросов просто разместите их на форуме.