Введение в ADO.NET
Что за Базы Данных
Основные понятия
Основные понятия
Аналоги из C#
Создаем БД
SQL-скрипт
Практическое задание 1
Практическое задание 2
Практическое задание 3
Практическое задание 4
Что за ADO.NET
Для чего это
Установка
Архитектура
Тест
Тест
Тест
Практическое задание 2
655.73K
Category: databasedatabase

1. Введение в ADO.NET

1. Введение в ADO.NET

2. Что за Базы Данных

База данных – это специальная программа, которая хранит данные
на диске, позволяет быстро искать и изменять данные, а также
обеспечивает безопасность и одновременную работу многих
людей.
Самый популярный тип баз данных в мире – реляционные (SQLбазы).

3. Основные понятия

Представим базу данных университета.
Внутри нее находятся таблицы (как листы в Excel, только строже).
Id
Name
Age
Email
Group
1
Иванов Иван
20
ivan@example.com
ИТ-21
2
Петрова Анна
19
anna@example.com
ИТ-21
3
Сидоров Пётр
21
petr@example.com
ИТ-22
Строка (row) = одна запись (один студент).
Столбец (column) = одно поле (Имя, Возраст и т.д.).
Id – первичный ключ (Primary Key). База гарантирует, что он никогда не
повторится и не может быть пустым.

4. Основные понятия

Таблица Курсов
Id
Title
Hours
1
Математика
120
2
Программирование
80
3
Базы данных
60
Таблица Оценок
Id
StudentId
CourseId
Grade
1
1
1
5
2
1
2
4
3
2
1
5

5. Аналоги из C#

С#
В базе данных
class Student { ... }
Таблица Students
List<Student> students
Все строки в таблице
students.Add(...)
INSERT
students.Where(...)
SELECT ... WHERE
students[0].Name = "Вася"
UPDATE
students.RemoveAt(0)
DELETE

6. Создаем БД

1. Вид
2. Обозреватель серверов
3. ПКМ
4. Создать новую базу данных…
5. Server name: (localdb)\mssqllocaldb
6. Database name: UniversityDB
7. По папке Таблицы ПКМ, создать новую таблицу

7. SQL-скрипт

По нашей БД ПКМ, создать
запрос.
Пишем запрос, запускаем
Обновляем БД

8. Практическое задание 1

Создайте запрос на создание третьей таблицы «Оценки»
Подсказка: создание внешнего ключа

9. Практическое задание 2

Вставьте новые данные

10. Практическое задание 3

Попробуйте самостоятельно написать запросы
1. Все студенты старше 19 лет, отсортированные по имени.
2. Все предметы, у которых больше 70 часов.

11. Практическое задание 4

1. Измените возраст Иванова на 21.
2. Поставьте оценку 5 всем студентам по предмету
«Программирование».
3. Удалите студента Смирнову Ольгу (и все ее оценки).

12. Что за ADO.NET

ADO.NET – это встроенная технология Microsoft .NET для доступа
к данным. Она позволяет C#-приложениям работать с базами
данных (SQL Server, Oracle, MySQL), XML-файлами и другими
источниками.

13. Для чего это

• Высокая производительность
• Полный контроль над SQL (хранимые процедуры, сложные
запросы)
• Работа с legacy-системами или когда ORM избыточен

14. Установка

1. Создаем обычное консольное приложение
2. Ставим пакет Microsoft.Data.SqlClient

15. Архитектура

Два режима:
1. Connected mode – быстрый, но держит соединение открытым.
2. Disconnected mode– данные кэшируются в памяти.
Основные классы (в пространстве Microsoft.Data.SqlClient):
• SqlConnection – соединение.
• SqlCommand – SQL-запрос или хранимая процедура.
• SqlDataReader – быстрый ридер.
• SqlDataAdapter + DataSet/DataTable – disconnected.
• SqlTransaction – транзакции.

16. Тест

Всегда используй using – объекты реализуют IDisposable, и
соединение автоматически возвращается в пул.
Параметры (@name) – обязательно, защита от SQL Injection.
ExecuteReader() – только для SELECT.
ExecuteNonQuery() – для INSERT/UPDATE/DELETE.
ExecuteScalar() – когда нужно одно значение (например,
COUNT(*)).

17. Тест

Всегда используй using – объекты реализуют IDisposable, и
соединение автоматически возвращается в пул.
Параметры (@name) – обязательно, защита от SQL Injection.
ExecuteReader() – только для SELECT.
ExecuteNonQuery() – для INSERT/UPDATE/DELETE.
ExecuteScalar() – когда нужно одно значение (например,
COUNT(*)).

18. Тест

Всегда используй using – объекты реализуют IDisposable, и
соединение автоматически возвращается в пул.
Параметры (@name) – обязательно, защита от SQL Injection.
ExecuteReader() – только для SELECT.
ExecuteNonQuery() – для INSERT/UPDATE/DELETE.
ExecuteScalar() – когда нужно одно значение (например,
COUNT(*)).

19. Практическое задание 2

Напишите метод ShowAllStudents(), который выводит всех
студентов через SqlDataReader.
English     Русский Rules