Создано для работы с MySQL базы данных
- Подготовка оборудования
- Подготовка базы данный
-
Войти в phpMyAdmin
- В интерфейсе ampps нажать на домик, который откроет сайт
- На сайте нажать на кнопку phpMyAdmin
- Войти в систему по логину
rootи паролюmysql
-
Создать базу данных с любым названием. Например,
mzd. Можно создать следующими способами:- Через интерфейс
- Слева нажать на кнопу
Создать БД - В поле
Имя базы данныхввести название базы данных
- Слева нажать на кнопу
- Через SQL-запрос:
CREATE DATABASE ``mzd``;
- Через интерфейс
-
Создать три таблицы, связанные между собой. Пример таблиц
- Таблица
users- таблица сохраненных лиц в базе данный, состоящая из стоблцов:user_id- индефикатор пользователя в базе (PRIMARY KEY),firstname- имя пользователя,surname- фамилия пользователя. - Таблица
phones- таблица сохраненных номеров, которыми владеют пользователи из таблицыusers. Состоит из столбцов:phone_id(PRIMARY KEY),phone_number,user. - Таблица
social_networks- таблица социальных сетей. Состоит изsocial_network_id(PRIMARY KEY),name,url. - Таблица
rigistrationsхранит в себе регистрации пользователей во всех соц. сетях. Столбцы:rigistration_id(PK),socical_network,phone,username
Можно создать таблицы данных следующими способами:
- Через интерфейс:
- Слева выбрать базу данных
- В поле
Имя таблицыввести название и брыть необходимое количество стобов. - Заполнить столбы
ИмяиТип. Для создания PK необходимо нажать на чекбокс подA_I - Если необходимо создать зависимость
- Зайти в структуру таблицы, перейти в вкладку
Связи - В поле столбец выбрать столбец, который ссылается к таблица
- В поле таблица выбрать ту таблицу, на которую будет ссылаться столбец
- Выбрать PK той таблицы
- Зайти в структуру таблицы, перейти в вкладку
- SQL запросом:
CREATE TABLE `mzd`.`users` ( `user_id` INT NOT NULL AUTO_INCREMENT , `firstname` TEXT NOT NULL , `surname` TEXT NOT NULL, PRIMARY KEY (`user_id`) ) ENGINE = InnoDB; CREATE TABLE `mzd`.`phones` ( `phone_id` INT NOT NULL AUTO_INCREMENT, `user` INT NOT NULL, `phone` TEXT NOT NULL, PRIMARY KEY (`phone_id`) ) ENGINE = InnoDB; ALTER TABLE `phones` ADD FOREIGN KEY (`user`) REFERENCES `users`(`user_id`) ON DELETE NO ACTION ON UPDATE NO ACTION; CREATE TABLE `mzd`.`social_networks` ( `social_network_id` INT NOT NULL AUTO_INCREMENT, `name` TEXT NOT NULL, `url` TEXT NOT NULL, PRIMARY KEY (`social_network_id`) ) ENGINE = InnoDB; - Таблица
-
- Заполнить базу данных.
Заполнять в порядке:
users,phones,social_networks,rigistrations - Создание тонкого клиента
- Запустить Visual Studio
- Нажать Создание проекта
- Выбрать
Консольное приложение (.NET Framework) - В
Обозреватель решенийнайти зависимости. Нажать правой кнопкой на Ссылки/Зависимостии выбрать в спискеУправление пакетами NuGet - Переходим в Обзор и вбиваем в поиск
Mysql - Выбираем
Mysql.Dataот Oracle и нажимаемДобавить пакеты/Установить - Открываем
Program.cs, который сейчас выглядит примерно такusing System; using System.Data; namespace SqlExample { public class Program { static void Main() { Console.WriteLine("Hello, World!"); } } }
- В начале файла добавить
using MySql.Data;- В функции
mainдобавить строки:- Параметры подключения:
string server = "localhost"; // Адресс сервера string database = "mzd"; // Используемая база данных string user = "root"; // Логин string password = "mysql"; // Пароль string connectionString = $"server={server};user={user};database={database};password={password};";
- Подключение к базе данных:
// создаём объект для подключения к БД MySqlConnection conn = new MySqlConnection(connStr); // устанавливаем соединение с БД conn.Open();
- Создаем константный запрос
// создаем запрос с константой string sql = "SELECT * FROM users;"; // объект для выполнения SQL-запроса MySqlCommand command = new MySqlCommand(sql, conn); // объект для чтения ответа сервера MySqlDataReader reader = command.ExecuteReader(); // читаем результат построчно while (reader.Read()) { Console.WriteLine($"{reader[0].ToString().PadRight(3, ' ')}" + $" {reader[1].ToString().PadRight(20, ' ')}" + $" {reader[2].ToString().PadRight(20, ' ')}"); } // закрываем reader reader.Close();
- Создаем запрос c переменной
// создаем запрос с константой string sql = "SELECT * FROM phones WHERE phones.user = @var_user;"; // объект для выполнения SQL-запроса MySqlCommand command = new MySqlCommand(sql, conn); // добавляем значение параметра command.Parameters.AddWithValue("@var_user", 2); // объект для чтения ответа сервера MySqlDataReader reader = command.ExecuteReader(); // читаем результат построчно while (reader.Read()) { Console.WriteLine($"{reader[0].ToString().PadRight(3, ' ')}" + $" {reader[1].ToString().PadRight(20, ' ')}"); } // закрываем reader reader.Close();
- Создаем датасет запрос
// объект для выполнения SQL-запроса MySqlDataAdapter adr = new MySqlDataAdapter(sql, conn); // добавляем значение параметра adr.SelectCommand.Parameters.AddWithValue("@param", somevalue); // заполнение dataset DataTable dt = new DataTable(); adr.Fill(dt); //Вывод таблицы полученный через датасет foreach (DataRow row in dt.Rows) { Console.WriteLine($"{row[column]}"); } // закрываем dataset adr.Dispose();
- Закрыть соединение с сервером
// закрываем соединение с БД conn.Close();
- Можно добавить
Console.ReadLine();чтобы окно не закрывалось
- В функции
- В начале файла добавить
- Включить воображение и дописать код
- Проверить работоспособность кода
- Отправить отчет Витомского
Сверху выбрать нажать на кнопку SQL,
в большом текстовом поле ввести необходимый запрос
и нажиьть на кнопку Вперёд

