Назад Вперед Зміст

ADO.NET + Access (.mdb) для C# Повторення матеріалу.

1: SELECT

Підключитись до бази Книги.mdb і вивести список книг на консоль.

Conn Cmd Output

using System;
using System.Data.OleDb;
class Program{
  static void Main(){
    string cs=@"Provider=Microsoft.ACE.OLEDB.16.0;Data Source=|DataDirectory|\\Книги.mdb";
    using(OleDbConnection conn=new OleDbConnection(cs)){
      conn.Open();
      OleDbCommand cmd=new OleDbCommand("SELECT Id, Назва, Автор FROM Книги", conn);
      using(OleDbDataReader r=cmd.ExecuteReader()){
        while(r.Read()) Console.WriteLine($"{r["Id"]}|{r["Назва"]}|{r["Автор"]}");
      }
    }
  }
}

2: INSERT

Підключитись до бази Книги.mdb і додати нову книгу.

Conn INSERT Rows

using System;
using System.Data.OleDb;
class Program{
  static void Main(){
    string cs=@"Provider=Microsoft.ACE.OLEDB.16.0;Data Source=|DataDirectory|\\Книги.mdb";
    using(OleDbConnection conn=new OleDbConnection(cs)){
      conn.Open();
      OleDbCommand cmd=new OleDbCommand("INSERT INTO Книги (Назва, Автор) VALUES (?, ?)", conn);
      cmd.Parameters.AddWithValue("@Назва","Нова книга");
      cmd.Parameters.AddWithValue("@Автор","Автор А");
      int rows=cmd.ExecuteNonQuery();
      Console.WriteLine($"{rows} запис додано");
    }
  }
}

3: UPDATE

Підключитись до бази Книги.mdb і оновити інформацію про книгу.

Conn UPDATE Rows

using System;
using System.Data.OleDb;
class Program{
  static void Main(){
    string cs=@"Provider=Microsoft.ACE.OLEDB.16.0;Data Source=|DataDirectory|\\Книги.mdb";
    using(OleDbConnection conn=new OleDbConnection(cs)){
      conn.Open();
      OleDbCommand cmd=new OleDbCommand("UPDATE Книги SET Автор=? WHERE Назва=?", conn);
      cmd.Parameters.AddWithValue("@Автор","Новий Автор");
      cmd.Parameters.AddWithValue("@Назва","Нова книга");
      int rows=cmd.ExecuteNonQuery();
      Console.WriteLine($"{rows} запис оновлено");
    }
  }
}

4: DELETE

Підключитись до бази Книги.mdb і видалити книгу.

Conn DELETE Rows

using System;
using System.Data.OleDb;
class Program{
  static void Main(){
    string cs=@"Provider=Microsoft.ACE.OLEDB.16.0;Data Source=|DataDirectory|\\Книги.mdb";
    using(OleDbConnection conn=new OleDbConnection(cs)){
      conn.Open();
      OleDbCommand cmd=new OleDbCommand("DELETE FROM Книги WHERE Назва=?", conn);
      cmd.Parameters.AddWithValue("@Назва","Нова книга");
      int rows=cmd.ExecuteNonQuery();
      Console.WriteLine($"{rows} запис видалено");
    }
  }
}

5: DataSet / DataAdapter

Підключитись до бази Книги.mdb і зчитати таблицю Книги в памʼять (DataSet),додати новий запис,а потім і зберегти зміни назад у базу даних.

Conn Fill DS Updated

using System;
using System.Data;
using System.Data.OleDb;
class Program{
  static void Main(){
    string cs=@"Provider=Microsoft.ACE.OLEDB.16.0;Data Source=|DataDirectory|\\Книги.mdb";
    using(OleDbConnection conn=new OleDbConnection(cs)){
      OleDbDataAdapter adapter=new OleDbDataAdapter("SELECT * FROM Книги", conn);
      OleDbCommandBuilder builder=new OleDbCommandBuilder(adapter);
      DataSet ds=new DataSet();
      adapter.Fill(ds,"Книги");
      DataRow row=ds.Tables["Книги"].NewRow();
      row["Назва"]="Книга DS"; row["Автор"]="Автор DS";
      ds.Tables["Книги"].Rows.Add(row);
      adapter.Update(ds,"Книги");
      Console.WriteLine("База оновлена через DataSet");
    }
  }
}

6: DataGridView / Filter

Підключитись до бази Книги.mdb і завантажити дані з таблиці Книги (Access), фільтрувати записи за полем Автор.Показати тільки ті записи, де:поле Автор починається зі слова "Автор",та відобразити результат у DataGridView.

DS Filter Grid

using System;
using System.Data;
using System.Data.OleDb;
using System.Windows.Forms;
class Form1:Form{
 DataGridView dgv=new DataGridView();
 public Form1(){ this.Load+=Form1_Load; this.Controls.Add(dgv); dgv.Dock=DockStyle.Fill;}
 void Form1_Load(object sender,EventArgs e){
   string cs=@"Provider=Microsoft.ACE.OLEDB.16.0;Data Source=|DataDirectory|\\Книги.mdb";
   OleDbDataAdapter adapter=new OleDbDataAdapter("SELECT * FROM Книги", cs);
   DataSet ds=new DataSet();
   adapter.Fill(ds,"Книги");
   DataView dv=new DataView(ds.Tables["Книги"]);
   dv.RowFilter="Автор LIKE 'Автор%'";
   dgv.DataSource=dv;
 }
}

Тест з ADO.NET (12 питань)

1. Що виконує оператор SELECT у SQL?

2. Що повертає метод ExecuteReader()?

3. Як правильно додати новий запис у таблицю Access?

4. Яка SQL-команда використовується для оновлення даних?

5. Що робить метод ExecuteNonQuery()?

6. Що таке DataSet у ADO.NET?

7. Що робить метод DataAdapter.Fill()?

8. Як правильно фільтрувати рядки в DataView?

9. Що таке DataView?

10. Для чого використовується OleDbConnection?

11. Як прив'язати дані до DataGridView?

12. Який клас використовується для параметризованих запитів?

Критерії оцінювання

КритерійБалиОпис
Виконання завдання5Програма працює без помилок
Якість коду3Чистий, структурований код
Робота з даними2Правильне використання ADO.NET
Оформлення та коментарі2Зрозумілі коментарі та документація
Тест12Максимальна кількість балів за тест

Варіанти завдань

Варіант 1

Розробити додаток, який повинен виконувати наступні завдання:

  1. при натисканні кнопки "Відобразити" в елементі DataGridView відобразити всі дані таблиці Покупці.
  2. при натисканні кнопки "Країна" в елементі DataGridView відобразити всіх покупців з країни Росія.
  3. при натисканні кнопки "Видалити" видалити ці записи з бази даних.
  4. при натисканні кнопки "Вихід" закрити додаток.

Додаток має бути спроектований так, щоб кнопка "Країна" була неактивною доти, доки:

Варіант 2

Розробити додаток, який повинен виконувати наступні завдання:

  1. при натисканні кнопки "Відобразити" в елементі DataGridView відобразити всі дані таблиці Замовлення.
  2. при натисканні кнопки "Кількість" в елементі DataGridView відобразити всі замовлення з кількістю більше 100.
  3. при натисканні кнопки "Додати" додати замовлення своєї улюбленої книги до таблиці.
  4. при натисканні кнопки "Вихід" закрити додаток.

Додаток має бути спроектований так, щоб кнопка "Кількість" була неактивною доти, доки:

Поле, в яке буде вводитися число, зробити так, щоб у це поле неможливо було ввести нічого, крім цифр.

Варіант 3

Розробити додаток, який повинен виконувати наступні завдання:

  1. при натисканні кнопки "Відобразити" в елементі DataGridView відобразити всі дані таблиці Книги.
  2. при натисканні кнопки "Видавництво" в елементі DataGridView відобразити книги видавництва «Художня література».
  3. при натисканні кнопки "Додати" додати свою улюблену книгу цього видавництва до таблиці.
  4. при натисканні кнопки "Вихід" закрити додаток.

Додаток має бути спроектований так, щоб кнопка "Видавництво" була неактивною доти, доки:

Варіант 4

Розробити додаток, який повинен виконувати наступні завдання:

  1. при натисканні кнопки "Відобразити" в елементі DataGridView відобразити всі дані таблиці Книги.
  2. при натисканні кнопки "Серія" в елементі DataGridView відобразити книги серії «В оригіналі».
  3. при натисканні кнопки "Видалити" видалити ці записи з бази даних.
  4. при натисканні кнопки "Вихід" закрити додаток.

Додаток має бути спроектований так, щоб кнопка "Серія" була неактивною доти, доки:

Варіант 5

Розробити додаток, який повинен виконувати наступні завдання:

  1. при натисканні кнопки "Відобразити" в елементі DataGridView відобразити всі дані таблиці "Спортивна гімнастика".
  2. при натисканні кнопки "Країна" в елементі DataGridView відобразити всіх гімнастів з країни «Росія».
  3. при натисканні кнопки "Видалити" видалити їх із таблиці.
  4. при натисканні кнопки "Змінити" змінити у записі з номером 308 значення поля "Кільця" на 10 (ввести в текстове поле).
  5. при натисканні кнопки "Вихід" закрити додаток.

Додаток має бути спроектований так, щоб кнопки "Країна" та "Змінити" були неактивними доти, доки:

Варіант 6

Розробити додаток, який повинен виконувати наступні завдання:

  1. при натисканні кнопки "Відобразити" в елементі DataGridView відобразити всі дані таблиці "Спортивна гімнастика".
  2. при натисканні кнопки "Країна" в елементі DataGridView відобразити всіх гімнастів з країни «Німеччина».
  3. при натисканні кнопки "Змінити" змінити у записах з номерами 303 та 305 значення поля "Країна" на Німеччина (ввести в текстове поле).
  4. при натисканні кнопки "Вихід" закрити додаток.

Додаток має бути спроектований так, щоб кнопки "Країна" та "Змінити" були неактивними доти, доки:

Назад Вперед Зміст