База даних вважається невід’ємною частиною більшості програм. База даних відіграє життєво важливу роль у зберіганні, доступі та маніпулюванні даними. Існує багато систем керування базами даних, які дозволяють створювати та керувати базами даних для вас.

Однак може виникнути сценарій, коли вам потрібен спосіб витягти дані з файлів бази даних, наприклад файлу .db, без встановлення системи керування базою даних або написання запитів SQL. Як би ви проаналізувати файл бази даних у такому випадку та отримати з нього дані?

У цій статті я збираюся продемонструвати, як легко ви можете витягти дані з таблиць у базі даних SQLite без написання запитів SQL. Я збираюся використовувати API GroupDocs.Parser for .NET, який підтримує вилучення даних із баз даних через 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;
  1. Підготуйте рядок підключення.
string connectionString = string.Format("Provider=System.Data.Sqlite;Data Source={0};Version=3;", "sqlite.db");
  1. Завантажте файл бази даних в об’єкт Parser.
using (Parser parser = new Parser(connectionString, new LoadOptions(FileFormat.Database)))
{
   // ваш код міститься тут
}
  1. Отримайте список таблиць бази даних за допомогою методу Parser.GetToc.
// Отримайте список таблиць
IEnumerable<TocItem> toc = parser.GetToc();
  1. Перебирайте таблиці та витягуйте дані.
// Перебір таблиць
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());
		}
	}
}

Вихід

Код C# для вилучення даних із бази даних SQLite

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