Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Современные стандарды отчет №1

.docx
Скачиваний:
2
Добавлен:
27.11.2023
Размер:
33.81 Кб
Скачать

Цель работы: конвертировать базу данных SQL в JSON.

Ход работы

Данный код написан на языке C# и предназначен для преобразования данных из базы данных SQLite в формат JSON и сохранения его в файл. Код использует библиотеки System, System.Collections.Generic, Newtonsoft.Json, System.Text.Json, System.IO и Microsoft.Data.Sqlite.

Сначала в коде объявляются все необходимые библиотеки с помощью ключевого слова using, а затем определяется пространство имен HomeWork. Внутри этого пространства имен определяется класс Program.

Далее определяется статический метод SQL_to_JSON, который принимает строку запроса на языке SQL в качестве аргумента.

static void SQL_to_JSON (string query)

{

string sqlExpression = query; // "SELECT * FROM Categories";

Внутри метода происходит соединение с базой данных SQLite, выполнение запроса и чтение результатов. Если результаты присутствуют, то они сохраняются в списке объектов data, который затем преобразуется в формат JSON с помощью метода JsonConvert.SerializeObject() и записывается в файл с помощью метода File.WriteAllText(). Затем преобразованные данные выводятся в консоль с помощью Console.WriteLine().

using (var connection = new SqliteConnection("Data Source=northwind.db"))

{

connection.Open();

SqliteCommand command = new SqliteCommand(sqlExpression, connection);

using (SqliteDataReader reader = command.ExecuteReader())

{

…………

var json = JsonConvert.SerializeObject(data); // преобразование списка объектов в JSON

File.WriteAllText("sqlTOjson.json", json); // запись JSON в файл

Console.WriteLine("\nПреобразованные данные:\n\n" + json); //вывод в консоль

}

Затем определяется статический метод Main(). Внутри метода выводится приглашение для ввода запроса на языке SQL с помощью Console.WriteLine(). Затем вызывается метод SQL_to_JSON с аргументом, предоставленным пользователем с помощью Console.ReadLine(). Затем выводится приглашение для завершения программы с помощью Console.Write() и ожидается нажатие любой клавиши с помощью Console.ReadKey().

static void Main()

{

Console.WriteLine("Введите SQL запрос SELECT FROM ");

SQL_to_JSON(Console.ReadLine());

Console.Write("Для завершения программы нажмити любую клавишу ");

Console.ReadKey();

}

Листинг программы:

using System;

using System.Collections.Generic;

using Newtonsoft.Json;

using System.Text.Json;

using System.IO;

using Microsoft.Data.Sqlite;

//https://metanit.com/sharp/adonetcore/4.3.php

namespace HomeWork

{

class Program

{

static void SQL_to_JSON (string query)

{

string sqlExpression = query; // "SELECT * FROM Categories";

using (var connection = new SqliteConnection("Data Source=northwind.db"))

{

connection.Open();

SqliteCommand command = new SqliteCommand(sqlExpression, connection);

using (SqliteDataReader reader = command.ExecuteReader())

{

if (reader.HasRows) // если есть данные

{

Console.WriteLine("\nДанные из базы данных SQL northwind.db:\n");

var data = new List<object>(); // создание списка объектов для сохранения данных

while (reader.Read()) // построчно считываем данные

{

var obj = new // создание объекта и заполнение его данными из базы данных

{

ID = reader.GetValue(0),

Name = reader.GetValue(1),

Description = reader.GetValue(2),

};

data.Add(obj); // добавление объекта в список

Console.WriteLine($"{obj}");

}

var json = JsonConvert.SerializeObject(data); // преобразование списка объектов в JSON

File.WriteAllText("sqlTOjson.json", json); // запись JSON в файл

Console.WriteLine("\nПреобразованные данные:\n\n" + json); //вывод в консоль

}

}

}

}

static void Main()

{

Console.WriteLine("Введите SQL запрос SELECT FROM ");

SQL_to_JSON(Console.ReadLine());

Console.Write("Для завершения программы нажмити любую клавишу ");

Console.ReadKey();

}

}

}

Вывод: в ходе работы был написан код на языке C#, который предназначен для преобразования данных из базы данных SQLite в формате JSON и сохранения его в файл. Код использовал б билетики Newtonsoft.Json, System.Text.Json, Microsoft.Data.Sqlite.