Введение Технология ADO.NET ADO.NET ADO.NET – это программный

















![Класс SqlDataReader Свойства FieldCount HasRows Основные методы [] параметры int и string Get…(int columnNumber) Класс SqlDataReader Свойства FieldCount HasRows Основные методы [] параметры int и string Get…(int columnNumber)](https://present5.com/presentacii-2/20171213\35582-tehnologiya_ado.ppt\35582-tehnologiya_ado_19.jpg)









35582-tehnologiya_ado.ppt
- Количество слайдов: 28
Введение Технология ADO.NET
ADO.NET ADO.NET – это программный интерфейс (API), предназначенный для обеспечения доступа к данным. Поддерживаемые технологии SQL Server Oracle OLE DB XML 2
Модели доступа к данным Присоединенная Предполагается наличие постоянного соединения между источником и приемником данных вне зависимости от того, осуществляется ли непосредственная передача данных в текущий момент времени Отсоединенная Соединение устанавливается только на момент обмена данными 3
Присоединенная модель Примеры Интернет-соединение Телефонный разговор Чат Удаленная хирургия Правительственные линии связи 4
Присоединенная модель Плюсы При запросе данных не тратится время на установку соединения Всегда доступны свежие данные Минусы Необходимо постоянное наличие соединения и средств для его обеспечения При отсутствии необходимости передачи данных соединение все равно остается занятым 5
Отсоединенная модель Примеры Почтовый сервер Доступ к web-приложениям Библиотека Системы контроля версий 6
Отсоединенная модель Плюсы Более низкие требования к соединению Можно работать при отсутствии связи Можно обработать больше запросов Минусы Больше времени непосредственно на доступ к данным Локальная копия данных может быть неактуальной Возможно наличие конфликтов 7
Классы ADO.NET Основные классы доступа к данным Connection (SqlConnection) Command (SqlCommand) Parameter (SqlParameter) DataReader (SqlDataReader) Transaction (SqlTransaction) 8
Доступ к базе Порядок действий: Получить строку подключения Создать объект SqlCommand (задать ему строку подключения, собственно SQL команду, параметры) Установить соединение Скачать или записать данные (выполнить команду) Разорвать соединение 9
Строка подключения Место хранения: Конфигурационный файл Ввод данных пользователем Основные элементы Data Source Initial Catalog Integrated Security User ID Password 10
Строка подключений Формат «Setting1 = Value1; Setting2 = Value2;…» Пример “Data Source=.\SqlExpress; Initial Catalog=Northwind; User ID=User; Password=12345” “Data Source=Nt-server; Initial Catalog=Base; Integrated Security=True” 11
Загрузка строки подключения string connectionString = System.Configuration.ConfigurationManager. ConnectionStrings["connectionString"]. ConnectionString; 13
Неправильная установка соединения SqlConnection connection = new SqlConnection(connectionString); connection.Open(); // действия с базой connection.Close(); 14
Правильная установка соединения (вариант 1) try { SqlConnection connection = new SqlConnection(connectionString); connection.Open(); // действия с базой } finally { connection.Close(); } 15
Правильная установка соединения (вариант 2) Интерфейс IDisposable using(SqlConnection connection = new SqlConnection(connectionString)) { connection.Open(); // действия с базой } 16
Класс SqlCommand Основные свойства CommandText CommandType (Storage Procedure, Text, TableDirect) Connection Parameters 17
Класс SqlCommand Основные методы ExecuteNonQuery (int) ExecuteReader (DataReader) ExecuteScalar (object) ExecuteXmlReader (XmlDataReader) 18
Класс SqlDataReader Свойства FieldCount HasRows Основные методы [] параметры int и string Get…(int columnNumber) NextResult Read 19
Пример string connectionString = System.Configuration.ConfigurationManager. ConnectionStrings["connectionString"].ConnectionString; using(SqlConnection connection = new SqlConnection(connectionString)) { SqlCommand command = new SqlCommand(); command.Connection = connection; command.CommandType = CommandType.Text; command.CommandText = "SELECT * FROM users"; connection.Open(); SqlDataReader reader = command.ExecuteReader(); while (reader.Read()) { Console.WriteLine("{0} - {1}", reader["name"], reader["surname"]); } } 20
SQL Injection Грубейшая ошибка: command.CommandText = "SELECT * FROM users WHERE name = ‘" + txtName + "’"; Причина Иванов’; DROP TABLE users; SELECT * FROM users WHERE name=‘user Правильное решение command.CommandText = "SELECT * FROM users WHERE name = @name"; command.Parameters.Add(new SqlParameter("@name", txtName.Text)); Хранимые процедуры 21
Трехслойная архитектура Presentation Layer (PL) Business Logic Layer (BLL) Data Access Layer (DAL) 22
Presentation Layer Цели Отображение данных пользователю Манипуляции, связанные с отображением (сортировка, фильтрация) Получение данных Первичная «защита от дурака» Чего быть не может Обращений к базе Операций, имеющих отношение к логике работы программы 23
Business Logic Layer Цели Предоставление данных PL Функциональное обеспечение работы системы (вся логика) Чего быть не может Обращения к базе данных Любого кода, имеющего отношения к интерфейсу (Console.WriteLine, TextBox1.Text…) 24
Data Access Layer Цели Обращения к базе (чтение/сохранение данных) Чего быть не может Функциональной логики Любого кода, имеющего отношения к интерфейсу (Console.WriteLine, TextBox1.Text…) 25
Два подхода к формированию Бизнес-логики Anemic – есть сущности (Entities) и есть код для их обработки (Logic Classes) Rich – Entities и Logic Classes объединены 26
27
Presentation Title For more information, please contact: Name Title EPAM Systems, Inc. Address City, State, Zip Code Phone: Fax: Email: http://www.epam.com

