Введение
SQL - это язык структурированных запросов для управления базами данных. Позволяет выполнять операции с базой данных:
вставлять, обновлять или удалять записи в таблицах базы данных;
создавать новые базы данных, таблицы, представления;
извлекать данные из базы данных и т. д.
Язык программирования С# был разработан группой инженеров компании Microsoft, и является одним из самых популярных языков программирования. C# применяют при создании различного ПО для ПК, сложных веб-сервисов или создании ПО на мобильные устройства. С# уже много времени поддерживает много полезных функций, таких как:
инкапсуляция;
наследование;
полиморфизм;
перегрузка операторов;
статическая типизация.
Openserver – это приложение для создание локального сервера на вашем компьютере. Даёт возможность получить доступ к дополнительному приложению phpMyAdmin.
PhpMyAdmin – это веб-приложение для администрирование баз данных.
Для начала реализации запросов SQL на языке C# нам понадобится база данных SQL. Для создания базы данных нам понадобится локальный сервер. В своей проделанной работе мы использовали Openserver и использовали дополнительное приложение phpMyAdmin для создания базы данных.
Основная часть
Создаём базу данных:
1. Заходим в приложение phpMyAdmin и при помощи команды создаём БД.
Команда для создания БД: CREATE DATABASE student_db;
2. Создаём таблицу в нашей БД и затем её заполняем данными.
Командадлясозданиятаблицы:
CREATE TABLE student_table (
id INT NOT NULL AUTO_INCREMENT,
Code VARCHAR(10),
FirstName TEXT(30),
SecondName TEXT(30),
MiddleName TEXT(30),
GroupName TEXT(30),
PhoneNumber TEXT(30),
3. Добавляем поля в таблицу через команду
Пример с добавление двух полей:
INSERT INTO student_table (Code, LastName, FirstName, MiddleName, GroupName, PhoneNumber) VALUES ('001', 'Андреева', 'Анастасия', 'Викторовна', 'ЗИС51В', '7(988)431-40-10';
После всех проделанных пунктов у нас должно получиться таблица с заполненными данными как показано на рис. 1.
Рис. 1. Таблица с заполненными данными
Теперь нужно создать в C# интерфейс для нашей базы данных с помощью Windows Forms. Интерфейс должен выполнять функции поиска по фамилии студента. Интерфейс программы разбит на две вкладки:
Во вкладке User мы можем:
• отобразить всех студентов, которые есть в базе данных
• найти студента по фамилии
• Открыть вкладку Administrator
Во вкладке Administrator мы можем добавить нового студента или вернуться в главное окно
Рис. 2. Вкладка User
Рис. 3. Вкладка Administrator
После того как мы реализовали интерфейс нужно написать код самой программы. Для реализации программы программный код должен выполнять задачи: поиск, добавление новых данных. Также нужно чтобы приложение вывести все данные по надобности.
Для первичной обработки SQL базы данных и выполняется следующий код:
using System;
using System.Windows.Forms;
using MySql.Data.MySqlClient;
namespace MySQL
{
public partial class Form1 : Form
{
private MySqlConnection _connection;
public Form1()
{
InitializeComponent();
_connection = OpenConnection("localhost", "student_bd", "root", "root");
}
private void LoadButton_Click(object sender, EventArgs e)
{
string sql = "SELECT * FROM student_table";
MySqlCommand command = new MySqlCommand(sql, _connection);
MySqlDataReader reader = command.ExecuteReader();
UpdateTable(UserTable, reader);
}
private void SearchButton_Click(object sender, EventArgs e)
{
string companyName = Convert.ToString(SearchField.Text);
string sql = $"SELECT * FROM student_table WHERE LastName = '{companyName}'";
MySqlCommand command = new MySqlCommand(sql, _connection);
MySqlDataReader reader = command.ExecuteReader();
UpdateTable(UserTable, reader);
}
private void AddButton_Click(object sender, EventArgs e)
{
int updatedRows = AdminTable.Rows.Count - 1;
for (int i = 0; i < updatedRows; i++)
{
var rowValues = new string[AdminTable.Columns.Count];
for (int j = 0; j < rowValues.Length; j++)
{
rowValues[j] = AdminTable.Rows[i].Cells[j].Value.ToString();
}
string sql = $"INSERT INTO student_table(Code, LastName, FirstName, MiddleName, GroupName, PhoneNumber) VALUES({rowValues[0]},'{rowValues[1]}','{rowValues[2]}','{rowValues[3]}','{rowValues[4]}','{rowValues[5]}')";
MySqlCommand command = new MySqlCommand(sql, _connection);
command.ExecuteNonQuery();
}
AdminTable.Rows.Clear();
}
private MySqlConnection OpenConnection(string serverName, string databaseName, string user, string password)
{
string connectionString = $"server={serverName};database={databaseName};user={user};password={password};";
MySqlConnection connection = new MySqlConnection(connectionString);
connection.Open();
return connection;
}
private void UpdateTable(DataGridView dataGridView, MySqlDataReader reader)
{
dataGridView.Rows.Clear();
int i = -1;
while (reader.Read())
{
dataGridView.Rows.Add();
i++;
for (int j = 0; j < reader.FieldCount; j++)
{
dataGridView.Rows[i].Cells[j].Value = Convert.ToString(reader[j]);
}
}
reader.Close();
}
~Form1()
{
_connection.Close();
}
private void AdminTable_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
}
}
}
После реализации программы нам необходимо проверить работоспособность программы:
1) проверяем работу поиска по фамилии:
Рис. 4. Результат зпроса поиска по фамилии
2) проверяем работу кнопки, которая выводит всех студентов:
Рис. 5. Результат зпроса вывода всех студентов
3) проверяем работу добавления студента:
Рис. 6. Запрос на добавление студента
Рис. 7. Результат добавления студента
ЗАКЛЮЧЕНИЕ
В проделанной работе мы разобрали основные запросы SQL при помощи языка C#. В процессе было разработано приложение, которое позволяет с легкостью обрабатывать базы данных.
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
1. Материал из Википедии — свободной энциклопедии. Высокоуровневый язык программирования // Википедия. 2020.
URL: https://ru.wikipedia.org/wiki/Высокоуровневый_язык_программирования
(дата обращения: 25.11.2021).
2. Гвоздева, В. А. Введение в специальность программиста: Учебник / В.А. Гвоздева. - 2-e изд., испр. и доп. - Москва : ИД ФОРУМ: НИЦ ИНФРА-М, 2015. - 208 с.
(дата обращения: 25.11.2021).
3. Гвоздева, В. А. Информатика, автоматизированные информационные технологии и системы: Учебник / Гвоздева В.А. - Москва :ИД ФОРУМ, НИЦ ИНФРА-М, 2015. - 544 с.
(дата обращения: 25.11.2021).
4. Голицына, О. Л. Языки программирования : учеб. пособие / О.Л. Голицына, Т.Л. Партыка, И.И. Попов. — 3-е изд., перераб. и доп. — Москва : ФОРУМ : ИНФРА-М, 2018. — 399 с.
(дата обращения: 25.11.2021).
5. Microsoft Build. Краткий обзор языка C# // Microsoft. 2020. URL: https://docs.microsoft.com/ru-ru/dotnet/csharp/tour-of-csharp/
(дата обращения: 25.11.2021).
6. Материал из Википедии — свободной энциклопедии. C Sharp // Википедия. 2020. URL: https://ru.wikipedia.org/wiki/C_Sharp
(дата обращения: 25.11.2021).
7. Лавлинский, В.В. Технология программирования на современных языках программирования / В.В. Лавлинский, О.В. Коровина. – Воронеж: Воронежская государственная лесотехническая академия, 2012. – 118 с.
(дата обращения: 25.11.2021).