Код примерный, подставляйте свои данные
Для того чтобы всё заработало, тебе нужно сделать две вещи:
Сделать бд
Создать проект в VS 20…
Вот как это должно выглядеть, после создания бд:
1. Подготовка (NuGet пакет)
В Visual Studio обязательно должен быть установлен драйвер.
Нажми правой кнопкой на проект -> Управление пакетами NuGet.
Найди и установи MySql.Data.
Без этого using MySql.Data.MySqlClient; будет подчеркнуто красным.
2. Заполнение данных подключения
В каждой форме в переменную connectionString (или connStr) нужно вписать твои данные.
Пример для сервера cfif31.ru:
string connectionString = "server=cfif31.ru; port=3306; username=твой_логин; password=твой_пароль; database=твоя_база_данных";
3. Вывод смежных таблиц (Изменение в Form2.cs)
Чтобы в таблице вместо author_id (цифры) отображалось author_name (текст), нам нужно создать метод в form1.
private void LoadData()
{
using (MySqlConnection connection = new MySqlConnection(connectionString))
{
try
{
connection.Open();
// Запрос, который объединяет таблицу книг (book) и авторов (author)
// Мы берем ID книги, название книги, имя автора из таблицы авторов и цену
string query = "SELECT book.idbook, book.name AS 'Название книги', author.author_name AS 'Автор', book.cena AS 'Цена' FROM book INNER JOIN author ON book.author_id = author.idauthor"; (Меняйте под свои названия в таблице)
MySqlDataAdapter adapter = new MySqlDataAdapter(query, connection);
DataTable dataTable = new DataTable();
adapter.Fill(dataTable);
dataGridView1.DataSource = dataTable;
// Скрываем колонку с ID, чтобы она не мешала пользователю,
// но оставалась доступной для кода (для удаления)
if (dataGridView1.Columns["idbook"] != null) {
dataGridView1.Columns["idbook"].Visible = false;
}
}
catch (Exception ex)
{
MessageBox.Show("Ошибка при загрузке данных: " + ex.Message);
}
}
}
Почему это работает:
INNER JOIN author ON book.author_id = author.idauthor: Эта строка «склеивает» две таблицы. Программа смотрит на ID автора в таблице книг и находит соответствующее имя в таблице авторов.
AS 'Название книги': Это переименование колонки прямо в запросе, чтобы в твоем dataGridView1 шапка была на русском языке.
Visible = false: Теперь пользователь видит только красивые названия и цены, но когда ты нажмешь «Удалить», код всё равно сможет вытащить idbook из скрытой колонки.