Отримати всі книги певного року видання з таблиці "Книги" та вивести їх у компонент DataGridView.
Для цього використаємо ADO.NET у додатку Windows Forms з базою даних Access, яка містить таблицю "Книги" з колонкою року видання.


Покрокова інструкція:


using System;
using System.Data;
using System.Data.OleDb;
using System.Windows.Forms;
namespace SUBD
{
public partial class Form1 : Form
{
// Рядок підключення до бази даних Access
private string connectionString = @"Provider=Microsoft.ACE.OLEDB.16.0;Data Source=[DataDirectory]!Книги.mdb";
public Form1()
{
InitializeComponent();
}
// Обробник події для завантаження даних з бази
private void buttonLoadData_Click(object sender, EventArgs e)
{
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
try
{
connection.Open();
// Створення адаптера та заповнення DataTable
OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT * FROM Книги", connection);
DataTable dataTable = new DataTable();
adapter.Fill(dataTable);
// Встановлення джерела даних для DataGridView
dataGridView1.DataSource = dataTable;
}
catch (Exception ex)
{
MessageBox.Show("Помилка завантаження даних: " + ex.Message,
"Помилка",
MessageBoxButtons.OK,
MessageBoxIcon.Error);
}
}
}
// Обробник події для закриття програми
private void button1_Click(object sender, EventArgs e)
{
Application.Exit();
}
}
}
private void buttonSearch_Click_Click(object sender, EventArgs e)
{
// Перевірка коректності введеного року
if (int.TryParse(textBoxYear.Text, out int year))
{
// Виклик методу для пошуку книг за вказаним роком
GetBooksByYear(year);
}
else
{
// Повідомлення про некоректне введення року
MessageBox.Show("Будь ласка, введіть коректний рік видання.",
"Помилка введення",
MessageBoxButtons.OK,
MessageBoxIcon.Warning);
}
}
private void GetBooksByYear(int year)
{
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
try
{
connection.Open();
// SQL-запит для отримання книг за вказаним роком видання
string query = "SELECT * FROM Книги WHERE [Год издания] = @Year";
using (OleDbCommand command = new OleDbCommand(query, connection))
{
// Додавання параметра для запобігання SQL-ін'єкціям
command.Parameters.AddWithValue("@Year", year);
// Створення адаптера та заповнення DataTable
OleDbDataAdapter adapter = new OleDbDataAdapter(command);
DataTable dataTable = new DataTable();
adapter.Fill(dataTable);
// Встановлення джерела даних для DataGridView
dataGridView2.DataSource = dataTable;
}
}
catch (Exception ex)
{
// Повідомлення про помилку під час виконання запиту
MessageBox.Show($"Помилка при пошуку книг: {ex.Message}",
"Помилка бази даних",
MessageBoxButtons.OK,
MessageBoxIcon.Error);
}
}
}
Чіткість коду, багаторазовість використання, спрощена робота з даними.
